From 6aa45da0f208fe2129b195e31b306ee21306f302 Mon Sep 17 00:00:00 2001 From: anton-karlovskiy-g Date: Wed, 10 Feb 2021 21:38:34 +0300 Subject: [PATCH 1/6] [fix] upgrade truffle version --- .gitignore | 1 + .vscode/settings.json | 6 + package-lock.json | 12570 +++++----- package.json | 7 +- src/abis/Address.json | 37448 ----------------------------- src/abis/Color.json | 1945 -- src/abis/Counters.json | 37450 ----------------------------- src/abis/ERC165.json | 37478 ----------------------------- src/abis/ERC721.json | 37799 ----------------------------- src/abis/ERC721Enumerable.json | 37877 ----------------------------- src/abis/ERC721Full.json | 37944 ------------------------------ src/abis/ERC721Metadata.json | 37870 ----------------------------- src/abis/IERC165.json | 37472 ----------------------------- src/abis/IERC721.json | 37736 ----------------------------- src/abis/IERC721Enumerable.json | 37793 ----------------------------- src/abis/IERC721Metadata.json | 37784 ----------------------------- src/abis/IERC721Receiver.json | 37496 ----------------------------- src/abis/Migrations.json | 1384 -- src/abis/SafeMath.json | 37448 ----------------------------- src/contracts/Color.sol | 3 +- src/contracts/ERC721Full.sol | 26 +- 21 files changed, 6366 insertions(+), 499171 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 src/abis/Address.json delete mode 100644 src/abis/Color.json delete mode 100644 src/abis/Counters.json delete mode 100644 src/abis/ERC165.json delete mode 100644 src/abis/ERC721.json delete mode 100644 src/abis/ERC721Enumerable.json delete mode 100644 src/abis/ERC721Full.json delete mode 100644 src/abis/ERC721Metadata.json delete mode 100644 src/abis/IERC165.json delete mode 100644 src/abis/IERC721.json delete mode 100644 src/abis/IERC721Enumerable.json delete mode 100644 src/abis/IERC721Metadata.json delete mode 100644 src/abis/IERC721Receiver.json delete mode 100644 src/abis/Migrations.json delete mode 100644 src/abis/SafeMath.json diff --git a/.gitignore b/.gitignore index 8692cf6..779b2e3 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +/src/abis diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..dc94151 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "cSpell.words": [ + "bignumber", + "browserslist" + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1ad85bb..ade3fd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "requires": { - "@babel/highlight": "7.5.0" + "@babel/highlight": "^7.0.0" } }, "@babel/core": { @@ -17,20 +17,20 @@ "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.5.0", - "@babel/helpers": "7.5.3", - "@babel/parser": "7.5.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0", - "convert-source-map": "1.6.0", - "debug": "4.1.1", - "json5": "2.1.0", - "lodash": "4.17.11", - "resolve": "1.8.1", - "semver": "5.7.0", - "source-map": "0.5.7" + "@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" }, "dependencies": { "debug": { @@ -38,7 +38,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "json5": { @@ -46,7 +46,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "minimist": { @@ -66,11 +66,11 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz", "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==", "requires": { - "@babel/types": "7.5.0", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "@babel/types": "^7.5.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -85,7 +85,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.0.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -93,8 +93,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", "requires": { - "@babel/helper-explode-assignable-expression": "7.1.0", - "@babel/types": "7.5.0" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-builder-react-jsx": { @@ -102,8 +102,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", "requires": { - "@babel/types": "7.5.0", - "esutils": "2.0.2" + "@babel/types": "^7.3.0", + "esutils": "^2.0.0" } }, "@babel/helper-call-delegate": { @@ -111,9 +111,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", "requires": { - "@babel/helper-hoist-variables": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/helper-create-class-features-plugin": { @@ -121,12 +121,12 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz", "integrity": "sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA==", "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.4.4", - "@babel/helper-split-export-declaration": "7.4.4" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4" } }, "@babel/helper-define-map": { @@ -134,9 +134,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/types": "7.5.0", - "lodash": "4.17.11" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" } }, "@babel/helper-explode-assignable-expression": { @@ -144,8 +144,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "requires": { - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-function-name": { @@ -153,9 +153,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.4.4", - "@babel/types": "7.5.0" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-get-function-arity": { @@ -163,7 +163,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.0.0" } }, "@babel/helper-hoist-variables": { @@ -171,7 +171,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.4.4" } }, "@babel/helper-member-expression-to-functions": { @@ -179,7 +179,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-imports": { @@ -187,7 +187,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-transforms": { @@ -195,12 +195,12 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz", "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "@babel/helper-split-export-declaration": "7.4.4", - "@babel/template": "7.4.4", - "@babel/types": "7.5.0", - "lodash": "4.17.11" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" } }, "@babel/helper-optimise-call-expression": { @@ -208,7 +208,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.0.0" } }, "@babel/helper-plugin-utils": { @@ -221,7 +221,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "@babel/helper-remap-async-to-generator": { @@ -229,11 +229,11 @@ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-wrap-function": "7.2.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-replace-supers": { @@ -241,10 +241,10 @@ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/helper-simple-access": { @@ -252,8 +252,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", "requires": { - "@babel/template": "7.4.4", - "@babel/types": "7.5.0" + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-split-export-declaration": { @@ -261,7 +261,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "requires": { - "@babel/types": "7.5.0" + "@babel/types": "^7.4.4" } }, "@babel/helper-wrap-function": { @@ -269,10 +269,10 @@ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" } }, "@babel/helpers": { @@ -280,9 +280,9 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.3.tgz", "integrity": "sha512-WsQGlraYva5sNtGYgnQWx/kRQNZulxOs5Yc2K260J/4Z5klXIx5HlJgCdv5h9U9apdldeoI/5A7JYylrxNMZoQ==", "requires": { - "@babel/template": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0" + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.0", + "@babel/types": "^7.5.0" } }, "@babel/highlight": { @@ -290,9 +290,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "requires": { - "chalk": "2.4.2", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -300,7 +300,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -308,9 +308,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "js-tokens": { @@ -323,7 +323,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -338,9 +338,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0", - "@babel/plugin-syntax-async-generators": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, "@babel/plugin-proposal-class-properties": { @@ -348,8 +348,8 @@ "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.5.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-proposal-decorators": { @@ -357,9 +357,9 @@ "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.5.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-decorators": "7.2.0" + "@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": { @@ -367,8 +367,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-dynamic-import": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" } }, "@babel/plugin-proposal-json-strings": { @@ -376,8 +376,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-json-strings": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, "@babel/plugin-proposal-object-rest-spread": { @@ -385,8 +385,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.3.tgz", "integrity": "sha512-QR8Gjmj2RChQ9IbTvparfjrBpr7i6rms9HtN1AJ9ACiLJVXCd9ZanLklVUIJ73kodNlIPUM+SAelEeRvsTvRLw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -394,8 +394,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, "@babel/plugin-proposal-unicode-property-regex": { @@ -403,9 +403,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" }, "dependencies": { "regexpu-core": { @@ -413,12 +413,12 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "8.1.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.1.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" } }, "regjsgen": { @@ -431,7 +431,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } } } @@ -441,7 +441,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-decorators": { @@ -449,7 +449,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz", "integrity": "sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-dynamic-import": { @@ -457,7 +457,7 @@ "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/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-flow": { @@ -465,7 +465,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz", "integrity": "sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-json-strings": { @@ -473,7 +473,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-jsx": { @@ -481,7 +481,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -489,7 +489,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { @@ -497,7 +497,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-typescript": { @@ -505,7 +505,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-arrow-functions": { @@ -513,7 +513,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { @@ -521,9 +521,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, "@babel/plugin-transform-block-scoped-functions": { @@ -531,7 +531,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-block-scoping": { @@ -539,8 +539,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "lodash": "4.17.11" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" } }, "@babel/plugin-transform-classes": { @@ -548,14 +548,14 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-define-map": "7.4.4", - "@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.4.4", - "@babel/helper-split-export-declaration": "7.4.4", - "globals": "11.12.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.4.4", + "@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.4.4", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" }, "dependencies": { "globals": { @@ -570,7 +570,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-destructuring": { @@ -578,7 +578,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz", "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -586,9 +586,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" }, "dependencies": { "regexpu-core": { @@ -596,12 +596,12 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "8.1.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.1.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" } }, "regjsgen": { @@ -614,7 +614,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } } } @@ -624,7 +624,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -632,8 +632,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-flow-strip-types": { @@ -641,8 +641,8 @@ "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/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0" } }, "@babel/plugin-transform-for-of": { @@ -650,7 +650,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-function-name": { @@ -658,8 +658,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-literals": { @@ -667,7 +667,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-member-expression-literals": { @@ -675,7 +675,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-amd": { @@ -683,9 +683,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { @@ -693,10 +693,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz", "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==", "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { @@ -704,9 +704,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", "requires": { - "@babel/helper-hoist-variables": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { @@ -714,8 +714,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { @@ -723,7 +723,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", "requires": { - "regexp-tree": "0.1.11" + "regexp-tree": "^0.1.6" } }, "@babel/plugin-transform-new-target": { @@ -731,7 +731,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-object-super": { @@ -739,8 +739,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.4.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" } }, "@babel/plugin-transform-parameters": { @@ -748,9 +748,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", "requires": { - "@babel/helper-call-delegate": "7.4.4", - "@babel/helper-get-function-arity": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-property-literals": { @@ -758,7 +758,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-constant-elements": { @@ -766,8 +766,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.5.0.tgz", "integrity": "sha512-c5Ba8cpybZFp1Izkf2sWGuNjOxoQ32tFgBvvYvwGhi4+9f6vGiSK9Gex4uVuO/Va6YJFu41aAh1MzMjUWkp0IQ==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-display-name": { @@ -775,7 +775,7 @@ "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/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-jsx": { @@ -783,9 +783,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", "requires": { - "@babel/helper-builder-react-jsx": "7.3.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-jsx": "7.2.0" + "@babel/helper-builder-react-jsx": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-react-jsx-self": { @@ -793,8 +793,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-jsx": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-react-jsx-source": { @@ -802,8 +802,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz", "integrity": "sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-jsx": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-regenerator": { @@ -811,7 +811,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", "requires": { - "regenerator-transform": "0.14.0" + "regenerator-transform": "^0.14.0" }, "dependencies": { "regenerator-transform": { @@ -819,7 +819,7 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", "requires": { - "private": "0.1.8" + "private": "^0.1.6" } } } @@ -829,7 +829,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-runtime": { @@ -837,10 +837,10 @@ "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.7.0" + "@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": { @@ -848,7 +848,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-spread": { @@ -856,7 +856,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-sticky-regex": { @@ -864,8 +864,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" } }, "@babel/plugin-transform-template-literals": { @@ -873,8 +873,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-typeof-symbol": { @@ -882,7 +882,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-typescript": { @@ -890,9 +890,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.2.tgz", "integrity": "sha512-r4zJOMbKY5puETm8+cIpaa0RQZG/sSASW1u0pj8qYklcERgVIbxVbP2wyJA7zI1//h7lEagQmXi9IL9iI5rfsA==", "requires": { - "@babel/helper-create-class-features-plugin": "7.5.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-typescript": "7.3.3" + "@babel/helper-create-class-features-plugin": "^7.5.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-typescript": "^7.2.0" } }, "@babel/plugin-transform-unicode-regex": { @@ -900,9 +900,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" }, "dependencies": { "regexpu-core": { @@ -910,12 +910,12 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "8.1.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.1.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" } }, "regjsgen": { @@ -928,7 +928,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } } } @@ -938,56 +938,56 @@ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.3.tgz", "integrity": "sha512-vfJVfBnsA14ezBRVpF1R8DJRVCa96O+fAwKImU2qS8ewjBnwf3U/aQXyvj4NWOmbTO23lVdu8c5lUaut/NKzGA==", "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-dynamic-import": "7.5.0", - "@babel/plugin-proposal-json-strings": "7.2.0", - "@babel/plugin-proposal-object-rest-spread": "7.5.3", - "@babel/plugin-proposal-optional-catch-binding": "7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "7.4.4", - "@babel/plugin-syntax-async-generators": "7.2.0", - "@babel/plugin-syntax-dynamic-import": "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.5.0", - "@babel/plugin-transform-block-scoped-functions": "7.2.0", - "@babel/plugin-transform-block-scoping": "7.4.4", - "@babel/plugin-transform-classes": "7.4.4", - "@babel/plugin-transform-computed-properties": "7.2.0", - "@babel/plugin-transform-destructuring": "7.5.0", - "@babel/plugin-transform-dotall-regex": "7.4.4", - "@babel/plugin-transform-duplicate-keys": "7.5.0", - "@babel/plugin-transform-exponentiation-operator": "7.2.0", - "@babel/plugin-transform-for-of": "7.4.4", - "@babel/plugin-transform-function-name": "7.4.4", - "@babel/plugin-transform-literals": "7.2.0", - "@babel/plugin-transform-member-expression-literals": "7.2.0", - "@babel/plugin-transform-modules-amd": "7.5.0", - "@babel/plugin-transform-modules-commonjs": "7.5.0", - "@babel/plugin-transform-modules-systemjs": "7.5.0", - "@babel/plugin-transform-modules-umd": "7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "7.4.5", - "@babel/plugin-transform-new-target": "7.4.4", - "@babel/plugin-transform-object-super": "7.2.0", - "@babel/plugin-transform-parameters": "7.4.4", - "@babel/plugin-transform-property-literals": "7.2.0", - "@babel/plugin-transform-regenerator": "7.4.5", - "@babel/plugin-transform-reserved-words": "7.2.0", - "@babel/plugin-transform-shorthand-properties": "7.2.0", - "@babel/plugin-transform-spread": "7.2.2", - "@babel/plugin-transform-sticky-regex": "7.2.0", - "@babel/plugin-transform-template-literals": "7.4.4", - "@babel/plugin-transform-typeof-symbol": "7.2.0", - "@babel/plugin-transform-unicode-regex": "7.4.4", - "@babel/types": "7.5.0", - "browserslist": "4.6.4", - "core-js-compat": "3.1.4", - "invariant": "2.2.4", - "js-levenshtein": "1.1.6", - "semver": "5.7.0" + "@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-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.5.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^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.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.4.4", + "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.5.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.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.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.5.0", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" }, "dependencies": { "browserslist": { @@ -995,9 +995,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } } } @@ -1007,11 +1007,11 @@ "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.2.0", - "@babel/plugin-transform-react-jsx": "7.3.0", - "@babel/plugin-transform-react-jsx-self": "7.2.0", - "@babel/plugin-transform-react-jsx-source": "7.5.0" + "@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/preset-typescript": { @@ -1019,8 +1019,8 @@ "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.5.2" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.1.0" } }, "@babel/runtime": { @@ -1028,7 +1028,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.3.tgz", "integrity": "sha512-09kHrO2Y0JWybW20qnt+UMlNTj7NUQByP6ubyq50Yj1QCDhbHfEmWk/uso+SaEi5XKNEWYVKbBgdiZisIaBPmw==", "requires": { - "regenerator-runtime": "0.13.2" + "regenerator-runtime": "^0.13.2" }, "dependencies": { "regenerator-runtime": { @@ -1043,9 +1043,9 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.5.0", - "@babel/types": "7.5.0" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/traverse": { @@ -1053,15 +1053,15 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz", "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==", "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.5.0", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.4.4", - "@babel/parser": "7.5.0", - "@babel/types": "7.5.0", - "debug": "4.1.1", - "globals": "11.12.0", - "lodash": "4.17.11" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.0", + "@babel/types": "^7.5.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" }, "dependencies": { "debug": { @@ -1069,7 +1069,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "globals": { @@ -1089,9 +1089,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz", "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==", "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" }, "dependencies": { "to-fast-properties": { @@ -1106,13 +1106,232 @@ "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" }, + "@ethersproject/abi": { + "version": "5.0.0-beta.153", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", + "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", + "requires": { + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.9.tgz", + "integrity": "sha512-X9fMkqpeu9ayC3JyBkeeZhn35P4xQkpGX/l+FrxDtEW9tybf/UWXSMi8bGThpPtfJ6q6U2LDetXSpSwK4TfYQQ==", + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/networks": "^5.0.7", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/transactions": "^5.0.9", + "@ethersproject/web": "^5.0.12" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.12.tgz", + "integrity": "sha512-qt4jAEzQGPZ31My1gFGPzzJHJveYhVycW7RHkuX0W8fvMdg7wr0uvP7mQEptMVrb+jYwsVktCf6gBGwWDpFiTA==", + "requires": { + "@ethersproject/abstract-provider": "^5.0.8", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7" + } + }, + "@ethersproject/address": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.10.tgz", + "integrity": "sha512-70vqESmW5Srua1kMDIN6uVfdneZMaMyRYH4qPvkAXGkbicrCOsA9m01vIloA4wYiiF+HLEfL1ENKdn5jb9xiAw==", + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/rlp": "^5.0.7" + } + }, + "@ethersproject/base64": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.8.tgz", + "integrity": "sha512-PNbpHOMgZpZ1skvQl119pV2YkCPXmZTxw+T92qX0z7zaMFPypXWTZBzim+hUceb//zx4DFjeGT4aSjZRTOYThg==", + "requires": { + "@ethersproject/bytes": "^5.0.9" + } + }, + "@ethersproject/bignumber": { + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.14.tgz", + "integrity": "sha512-Q4TjMq9Gg3Xzj0aeJWqJgI3tdEiPiET7Y5OtNtjTAODZ2kp4y9jMNg97zVcvPedFvGROdpGDyCI77JDFodUzOw==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bytes": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.10.tgz", + "integrity": "sha512-vpu0v1LZ1j1s9kERQIMnVU69MyHEzUff7nqK9XuCU4vx+AM8n9lU2gj7jtJIvGSt9HzatK/6I6bWusI5nyuaTA==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/constants": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.9.tgz", + "integrity": "sha512-2uAKH89UcaJP/Sc+54u92BtJtZ4cPgcS1p0YbB1L3tlkavwNvth+kNCUplIB1Becqs7BOZr0B/3dMNjhJDy4Dg==", + "requires": { + "@ethersproject/bignumber": "^5.0.13" + } + }, + "@ethersproject/hash": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.11.tgz", + "integrity": "sha512-H3KJ9fk33XWJ2djAW03IL7fg3DsDMYjO1XijiUb1hJ85vYfhvxu0OmsU7d3tg2Uv1H1kFSo8ghr3WFQ8c+NL3g==", + "requires": { + "@ethersproject/abstract-signer": "^5.0.10", + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "@ethersproject/keccak256": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.8.tgz", + "integrity": "sha512-zoGbwXcWWs9MX4NOAZ7N0hhgIRl4Q/IO/u9c/RHRY4WqDy3Ywm0OLamEV53QDwhjwn3YiiVwU1Ve5j7yJ0a/KQ==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "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=" + } + } + }, + "@ethersproject/logger": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.9.tgz", + "integrity": "sha512-kV3Uamv3XOH99Xf3kpIG3ZkS7mBNYcLDM00JSDtNgNB4BihuyxpQzIZPRIDmRi+95Z/R1Bb0X2kUNHa/kJoVrw==" + }, + "@ethersproject/networks": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.8.tgz", + "integrity": "sha512-PYpptlO2Tu5f/JEBI5hdlMds5k1DY1QwVbh3LKPb3un9dQA2bC51vd2/gRWAgSBpF3kkmZOj4FhD7ATLX4H+DA==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/properties": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.8.tgz", + "integrity": "sha512-zEnLMze2Eu2VDPj/05QwCwMKHh506gpT9PP9KPVd4dDB+5d6AcROUYVLoIIQgBYK7X/Gw0UJmG3oVtnxOQafAw==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/rlp": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.8.tgz", + "integrity": "sha512-E4wdFs8xRNJfzNHmnkC8w5fPeT4Wd1U2cust3YeT16/46iSkLT8nn8ilidC6KhR7hfuSZE4UqSPzyk76p7cdZg==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/signing-key": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.10.tgz", + "integrity": "sha512-w5it3GbFOvN6e0mTd5gDNj+bwSe6L9jqqYjU+uaYS8/hAEp4qYLk5p8ZjbJJkNn7u1p0iwocp8X9oH/OdK8apA==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "elliptic": "6.5.4" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "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" + } + } + } + }, + "@ethersproject/strings": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.9.tgz", + "integrity": "sha512-ogxBpcUpdO524CYs841MoJHgHxEPUy0bJFDS4Ezg8My+WYVMfVAOlZSLss0Rurbeeam8CpUVDzM4zUn09SU66Q==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/transactions": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.10.tgz", + "integrity": "sha512-Tqpp+vKYQyQdJQQk4M73tDzO7ODf2D42/sJOcKlDAAbdSni13v6a+31hUdo02qYXhVYwIs+ZjHnO4zKv5BNk8w==", + "requires": { + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/rlp": "^5.0.7", + "@ethersproject/signing-key": "^5.0.8" + } + }, + "@ethersproject/web": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.13.tgz", + "integrity": "sha512-G3x/Ns7pQm21ALnWLbdBI5XkW/jrsbXXffI9hKNPHqf59mTxHYtlNiSwxdoTSwCef3Hn7uvGZpaSgTyxs7IufQ==", + "requires": { + "@ethersproject/base64": "^5.0.7", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, "@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" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -1130,12 +1349,12 @@ "resolved": "https://registry.npmjs.org/@react-bootstrap/react-popper/-/react-popper-1.2.1.tgz", "integrity": "sha512-4l3q7LcZEhrSkI4d3Ie3g4CdrXqqTexXX4PFT45CB0z5z2JUbaxgRwKNq7r5j2bLdVpZm+uvUGqxJw8d9vgbJQ==", "requires": { - "babel-runtime": "6.26.0", - "create-react-context": "0.2.3", - "popper.js": "1.15.0", - "prop-types": "15.7.2", - "typed-styles": "0.0.5", - "warning": "3.0.0" + "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": { @@ -1143,7 +1362,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -1153,8 +1372,8 @@ "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", "requires": { - "debug": "3.2.6", - "request": "2.88.0" + "debug": "^3.1.0", + "request": "^2.85.0" }, "dependencies": { "debug": { @@ -1162,7 +1381,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -1177,8 +1396,8 @@ "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.2.6" + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -1186,7 +1405,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -1201,9 +1420,9 @@ "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.2.6", - "hosted-git-info": "2.7.1" + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" }, "dependencies": { "debug": { @@ -1211,7 +1430,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -1226,9 +1445,9 @@ "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.2.6" + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" }, "dependencies": { "debug": { @@ -1236,7 +1455,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -1246,18 +1465,23 @@ } } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, "@svgr/core": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-2.4.1.tgz", "integrity": "sha512-2i1cUbjpKt1KcIP05e10vkmu9Aedp32EFqVcSQ08onbB8lVxJqMPci3Hr54aI14S9cLg4JdcpO0D35HHUtT8oQ==", "requires": { - "camelcase": "5.3.1", - "cosmiconfig": "5.2.1", - "h2x-core": "1.1.1", - "h2x-plugin-jsx": "1.2.0", - "merge-deep": "3.0.2", - "prettier": "1.18.2", - "svgo": "1.2.2" + "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": { @@ -1265,32 +1489,56 @@ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-2.4.1.tgz", "integrity": "sha512-sMHYq0zbMtSHcc9kVfkYI2zrl88u4mKGyQLgKt7r+ul5nITcncm/EPBhzEUrJY5izdlaU6EvyH8zOhZnfaSmOA==", "requires": { - "@babel/core": "7.1.6", - "@babel/plugin-transform-react-constant-elements": "7.5.0", - "@babel/preset-env": "7.5.3", - "@babel/preset-react": "7.0.0", - "@svgr/core": "2.4.1", - "loader-utils": "1.2.3" + "@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" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" } }, "@types/bn.js": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", - "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", + "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": "10.14.12" + "@types/node": "*" } }, "@types/node": { - "version": "10.14.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.12.tgz", - "integrity": "sha512-QcAKpaO6nhHLlxWBvpc4WeLrTvPqlHOvaj0s5GriKkA1zq+bsFBPpfYCvQhLqLgYlIko8A9YrPdaMHCo5mBcpg==" + "version": "12.19.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.16.tgz", + "integrity": "sha512-7xHmXm/QJ7cbK2laF+YYD7gb5MggHIIQwqyjin3bpEGiSuvScMQ5JZZXPvRipi1MwckTQbJZROMns/JxdnIL1Q==" + }, + "@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.2", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, + "@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", @@ -1304,7 +1552,7 @@ "@webassemblyjs/helper-module-context": "1.7.6", "@webassemblyjs/helper-wasm-bytecode": "1.7.6", "@webassemblyjs/wast-parser": "1.7.6", - "mamacro": "0.0.3" + "mamacro": "^0.0.3" } }, "@webassemblyjs/floating-point-hex-parser": { @@ -1340,7 +1588,7 @@ "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" + "mamacro": "^0.0.3" } }, "@webassemblyjs/helper-wasm-bytecode": { @@ -1364,7 +1612,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", "requires": { - "@xtuc/ieee754": "1.2.0" + "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { @@ -1442,7 +1690,7 @@ "@webassemblyjs/helper-code-frame": "1.7.6", "@webassemblyjs/helper-fsm": "1.7.6", "@xtuc/long": "4.2.1", - "mamacro": "0.0.3" + "mamacro": "^0.0.3" } }, "@webassemblyjs/wast-printer": { @@ -1475,7 +1723,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "2.1.24", + "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, @@ -1489,7 +1737,7 @@ "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.7.3" + "acorn": "^5.0.0" }, "dependencies": { "acorn": { @@ -1504,8 +1752,8 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", "requires": { - "acorn": "6.2.0", - "acorn-walk": "6.2.0" + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" } }, "acorn-jsx": { @@ -1523,20 +1771,15 @@ "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.10.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-errors": { @@ -1564,14 +1807,6 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -1587,18 +1822,13 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, "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.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { "arr-diff": { @@ -1616,16 +1846,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -1633,7 +1863,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1643,13 +1873,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -1657,7 +1887,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1665,7 +1895,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1673,7 +1903,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1681,7 +1911,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1691,7 +1921,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1699,7 +1929,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1709,9 +1939,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -1726,14 +1956,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -1741,7 +1971,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1749,7 +1979,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1759,10 +1989,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -1770,7 +2000,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1780,7 +2010,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1788,7 +2018,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1796,9 +2026,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -1806,7 +2036,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1814,7 +2044,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1829,19 +2059,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } } } @@ -1851,20 +2081,12 @@ "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=" }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "1.0.0" - } - }, "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" + "default-require-extensions": "^1.0.0" } }, "aproba": { @@ -1872,17 +2094,12 @@ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, "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.3" + "sprintf-js": "~1.0.2" } }, "aria-query": { @@ -1891,7 +2108,7 @@ "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "requires": { "ast-types-flow": "0.0.7", - "commander": "2.20.0" + "commander": "^2.11.0" } }, "arr-diff": { @@ -1899,15 +2116,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "1.0.1" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -1915,24 +2124,11 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "1.0.1" - } - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -1953,39 +2149,8 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0" - } - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "1.1.0", - "is-number": "4.0.0" - }, - "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==" - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "4.0.0" - }, - "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==" - } + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-map": { @@ -1998,34 +2163,12 @@ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "1.0.0", - "get-value": "2.0.6", - "kind-of": "5.1.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==" - } - } - }, "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.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2038,6 +2181,81 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" }, + "array.prototype.map": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.3.tgz", + "integrity": "sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "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" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "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-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" + } + }, + "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" + } + } + } + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -2053,7 +2271,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "asn1.js": { @@ -2061,9 +2279,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -2071,7 +2289,7 @@ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "requires": { - "object-assign": "4.1.1", + "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { @@ -2120,18 +2338,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "requires": { - "lodash": "4.17.11" - } - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0", - "process-nextick-args": "2.0.1", - "stream-exhaust": "1.0.2" + "lodash": "^4.17.11" } }, "async-each": { @@ -2144,14 +2351,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "1.3.2" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2167,13 +2366,13 @@ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", "requires": { - "browserslist": "4.6.4", - "caniuse-lite": "1.0.30000981", - "chalk": "2.4.2", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.17", - "postcss-value-parser": "4.0.0" + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -2181,7 +2380,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -2189,9 +2388,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -2199,9 +2398,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "postcss": { @@ -2209,9 +2408,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" }, "dependencies": { "supports-color": { @@ -2219,7 +2418,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -2239,7 +2438,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2267,9 +2466,9 @@ "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" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-core": { @@ -2277,25 +2476,25 @@ "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.1", - "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.6.0", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "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": { @@ -2303,12 +2502,12 @@ "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.5.0", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0", + "@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" + "eslint-visitor-keys": "^1.0.0" } }, "babel-extract-comments": { @@ -2316,7 +2515,7 @@ "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" + "babylon": "^6.18.0" } }, "babel-generator": { @@ -2324,14 +2523,14 @@ "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.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "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" }, "dependencies": { "jsesc": { @@ -2346,9 +2545,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -2356,9 +2555,9 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -2366,10 +2565,10 @@ "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.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2377,10 +2576,10 @@ "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.11" + "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": { @@ -2388,9 +2587,9 @@ "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.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -2398,10 +2597,10 @@ "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.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2409,11 +2608,11 @@ "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.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2421,8 +2620,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -2430,8 +2629,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -2439,8 +2638,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -2448,9 +2647,9 @@ "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.11" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -2458,11 +2657,11 @@ "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.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2470,12 +2669,12 @@ "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.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2483,8 +2682,8 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-jest": { @@ -2492,8 +2691,8 @@ "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-plugin-istanbul": "^4.1.6", + "babel-preset-jest": "^23.2.0" } }, "babel-loader": { @@ -2501,10 +2700,10 @@ "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.2.3", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" } }, "babel-messages": { @@ -2512,7 +2711,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -2520,7 +2719,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-dynamic-import-node": { @@ -2528,7 +2727,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", "requires": { - "object.assign": "4.1.0" + "object.assign": "^4.1.0" } }, "babel-plugin-istanbul": { @@ -2536,10 +2735,10 @@ "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.2", - "test-exclude": "4.2.3" + "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": { @@ -2552,8 +2751,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz", "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==", "requires": { - "cosmiconfig": "5.2.1", - "resolve": "1.8.1" + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" } }, "babel-plugin-named-asset-import": { @@ -2606,9 +2805,9 @@ "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.13.0", - "babel-runtime": "6.26.0" + "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": { @@ -2616,9 +2815,9 @@ "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.13.0", - "babel-runtime": "6.26.0" + "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": { @@ -2626,10 +2825,10 @@ "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.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "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": { @@ -2637,11 +2836,11 @@ "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.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2649,7 +2848,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -2657,7 +2856,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -2665,11 +2864,11 @@ "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.11" + "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": { @@ -2677,15 +2876,15 @@ "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.26.0", - "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.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2693,8 +2892,8 @@ "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.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -2702,7 +2901,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -2710,8 +2909,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -2719,7 +2918,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -2727,9 +2926,9 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -2737,7 +2936,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -2745,9 +2944,9 @@ "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.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "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": { @@ -2755,10 +2954,10 @@ "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-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": { @@ -2766,9 +2965,9 @@ "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.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -2776,9 +2975,9 @@ "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.26.0", - "babel-template": "6.26.0" + "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": { @@ -2786,8 +2985,8 @@ "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.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -2795,12 +2994,12 @@ "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.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "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": { @@ -2808,8 +3007,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -2817,7 +3016,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -2825,9 +3024,9 @@ "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.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -2835,7 +3034,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -2843,7 +3042,7 @@ "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.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -2851,9 +3050,9 @@ "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.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -2861,9 +3060,9 @@ "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.13.0", - "babel-runtime": "6.26.0" + "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": { @@ -2871,8 +3070,8 @@ "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.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-react-remove-prop-types": { @@ -2885,7 +3084,7 @@ "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.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -2893,8 +3092,8 @@ "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.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-polyfill": { @@ -2902,9 +3101,9 @@ "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.6.9", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" } }, "babel-preset-env": { @@ -2912,36 +3111,36 @@ "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.24.1", - "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.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.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.26.2", - "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.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.7.0" + "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": { @@ -2949,30 +3148,30 @@ "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.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.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.26.2", - "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.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "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": { @@ -2980,8 +3179,8 @@ "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-plugin-jest-hoist": "^23.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" } }, "babel-preset-react-app": { @@ -3015,20 +3214,20 @@ "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.5.0", - "@babel/helpers": "7.5.3", - "@babel/parser": "7.5.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.5.0", - "@babel/types": "7.5.0", - "convert-source-map": "1.6.0", - "debug": "4.1.1", - "json5": "2.1.0", - "lodash": "4.17.11", - "resolve": "1.8.1", - "semver": "5.7.0", - "source-map": "0.5.7" + "@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-object-rest-spread": { @@ -3036,8 +3235,8 @@ "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/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, "@babel/plugin-transform-classes": { @@ -3045,14 +3244,14 @@ "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.4.4", - "@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.4.4", - "@babel/helper-split-export-declaration": "7.4.4", - "globals": "11.12.0" + "@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": { @@ -3060,7 +3259,7 @@ "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/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-constant-elements": { @@ -3068,8 +3267,8 @@ "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/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/preset-env": { @@ -3077,49 +3276,49 @@ "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.2", - "@babel/plugin-proposal-optional-catch-binding": "7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "7.4.4", - "@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.5.0", - "@babel/plugin-transform-block-scoped-functions": "7.2.0", - "@babel/plugin-transform-block-scoping": "7.4.4", - "@babel/plugin-transform-classes": "7.2.2", - "@babel/plugin-transform-computed-properties": "7.2.0", - "@babel/plugin-transform-destructuring": "7.3.2", - "@babel/plugin-transform-dotall-regex": "7.4.4", - "@babel/plugin-transform-duplicate-keys": "7.5.0", - "@babel/plugin-transform-exponentiation-operator": "7.2.0", - "@babel/plugin-transform-for-of": "7.4.4", - "@babel/plugin-transform-function-name": "7.4.4", - "@babel/plugin-transform-literals": "7.2.0", - "@babel/plugin-transform-modules-amd": "7.5.0", - "@babel/plugin-transform-modules-commonjs": "7.5.0", - "@babel/plugin-transform-modules-systemjs": "7.5.0", - "@babel/plugin-transform-modules-umd": "7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "7.4.5", - "@babel/plugin-transform-new-target": "7.4.4", - "@babel/plugin-transform-object-super": "7.2.0", - "@babel/plugin-transform-parameters": "7.4.4", - "@babel/plugin-transform-regenerator": "7.4.5", - "@babel/plugin-transform-shorthand-properties": "7.2.0", - "@babel/plugin-transform-spread": "7.2.2", - "@babel/plugin-transform-sticky-regex": "7.2.0", - "@babel/plugin-transform-template-literals": "7.4.4", - "@babel/plugin-transform-typeof-symbol": "7.2.0", - "@babel/plugin-transform-unicode-regex": "7.4.4", - "browserslist": "4.6.4", - "invariant": "2.2.4", - "js-levenshtein": "1.1.6", - "semver": "5.7.0" + "@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/runtime": { @@ -3127,7 +3326,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", "requires": { - "regenerator-runtime": "0.12.1" + "regenerator-runtime": "^0.12.0" } }, "babel-loader": { @@ -3135,10 +3334,10 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", "requires": { - "find-cache-dir": "2.1.0", - "loader-utils": "1.2.3", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" + "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": { @@ -3146,7 +3345,7 @@ "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" + "object.assign": "^4.1.0" } }, "browserslist": { @@ -3154,9 +3353,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "debug": { @@ -3164,7 +3363,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "find-cache-dir": { @@ -3172,9 +3371,9 @@ "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.1.0", - "pkg-dir": "3.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-up": { @@ -3182,7 +3381,7 @@ "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": "^3.0.0" } }, "globals": { @@ -3195,7 +3394,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "locate-path": { @@ -3203,8 +3402,8 @@ "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-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "make-dir": { @@ -3212,8 +3411,8 @@ "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.7.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, "minimist": { @@ -3231,7 +3430,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -3239,7 +3438,7 @@ "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.2.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -3257,7 +3456,7 @@ "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" + "find-up": "^3.0.0" } }, "regenerator-runtime": { @@ -3272,10 +3471,10 @@ "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-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": { @@ -3283,11 +3482,11 @@ "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.26.0" + "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": { @@ -3295,13 +3494,13 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.6.9", - "home-or-tmp": "2.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "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": { @@ -3309,8 +3508,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.9", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "regenerator-runtime": { @@ -3325,11 +3524,11 @@ "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.11" + "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": { @@ -3337,15 +3536,15 @@ "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.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.11" + "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": { @@ -3353,10 +3552,10 @@ "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.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -3364,22 +3563,6 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "1.1.2", - "arr-flatten": "1.1.0", - "arr-map": "2.0.2", - "array-each": "1.0.1", - "array-initial": "1.1.0", - "array-last": "1.3.0", - "async-done": "1.3.2", - "async-settle": "1.0.0", - "now-and-later": "2.0.1" - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -3390,13 +3573,13 @@ "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.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" + "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": { @@ -3404,7 +3587,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -3412,7 +3595,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3420,7 +3603,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3428,9 +3611,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -3440,6 +3623,14 @@ } } }, + "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.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", @@ -3455,7 +3646,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bfj": { @@ -3463,10 +3654,10 @@ "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", "requires": { - "bluebird": "3.5.5", - "check-types": "7.4.0", - "hoopy": "0.1.4", - "tryer": "1.0.1" + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "hoopy": "^0.1.2", + "tryer": "^1.0.0" } }, "big.js": { @@ -3474,26 +3665,20 @@ "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" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "5.1.2" - } + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, "bluebird": { "version": "3.5.5", @@ -3511,15 +3696,15 @@ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { "bytes": "3.1.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", + "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "1.6.18" + "type-is": "~1.6.17" }, "dependencies": { "bytes": { @@ -3539,12 +3724,12 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { - "array-flatten": "2.1.2", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "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": { @@ -3562,7 +3747,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -3571,9 +3756,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -3602,21 +3787,21 @@ } }, "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" }, "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.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "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": { @@ -3624,9 +3809,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -3634,10 +3819,10 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "browserify-rsa": { @@ -3645,8 +3830,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.8", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -3654,13 +3839,13 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.5.0", - "inherits": "2.0.4", - "parse-asn1": "5.1.4" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -3668,7 +3853,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "pako": "1.0.10" + "pako": "~1.0.5" } }, "browserslist": { @@ -3676,8 +3861,26 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188" + "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": { @@ -3685,7 +3888,7 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz", "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==", "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "buffer": { @@ -3693,16 +3896,11 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.13", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3723,6 +3921,14 @@ "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", @@ -3738,20 +3944,20 @@ "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.2", - "figgy-pudding": "3.5.1", - "glob": "7.1.4", - "graceful-fs": "4.2.0", - "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" + "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" }, "dependencies": { "lru-cache": { @@ -3759,7 +3965,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.0.3" + "yallist": "^3.0.2" } }, "y18n": { @@ -3779,15 +3985,58 @@ "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.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" + "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" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + } + } + }, + "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": { @@ -3800,7 +4049,7 @@ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "requires": { - "callsites": "2.0.0" + "callsites": "^2.0.0" } }, "caller-path": { @@ -3808,7 +4057,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "requires": { - "caller-callsite": "2.0.0" + "caller-callsite": "^2.0.0" } }, "callsites": { @@ -3821,8 +4070,8 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -3835,10 +4084,10 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "requires": { - "browserslist": "4.6.4", - "caniuse-lite": "1.0.30000981", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -3846,9 +4095,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } } } @@ -3863,7 +4112,7 @@ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", "requires": { - "rsvp": "3.6.2" + "rsvp": "^3.3.3" } }, "case-sensitive-paths-webpack-plugin": { @@ -3881,12 +4130,12 @@ "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.8" + "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": { @@ -3894,7 +4143,7 @@ "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" + "check-error": "^1.0.2" } }, "chai-bignumber": { @@ -3907,11 +4156,11 @@ "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.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "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": { @@ -3934,17 +4183,18 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.2" + "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": { "array-unique": { @@ -3957,16 +4207,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" } }, "extend-shallow": { @@ -3974,7 +4224,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "fill-range": { @@ -3982,10 +4232,19 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "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": { + "nan": "^2.12.1" } }, "glob-parent": { @@ -3993,8 +4252,8 @@ "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.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -4002,7 +4261,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -4017,7 +4276,7 @@ "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-extglob": "^2.1.1" } }, "is-number": { @@ -4025,7 +4284,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "normalize-path": { @@ -4045,7 +4304,7 @@ "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.10.0" + "tslib": "^1.9.0" } }, "ci-info": { @@ -4053,13 +4312,50 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "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" + } + }, + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, "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.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -4067,15 +4363,20 @@ "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.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -4083,7 +4384,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4098,7 +4399,7 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "requires": { - "source-map": "0.6.1" + "source-map": "~0.6.0" }, "dependencies": { "source-map": { @@ -4113,7 +4414,7 @@ "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" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -4126,9 +4427,9 @@ "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.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -4141,46 +4442,29 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, "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.5", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "lazy-cache": "1.0.4", - "shallow-clone": "0.1.2" + "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" } }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { - "inherits": "2.0.4", - "process-nextick-args": "2.0.1", - "readable-stream": "2.3.6" + "mimic-response": "^1.0.0" } }, "co": { @@ -4193,9 +4477,9 @@ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "requires": { - "@types/q": "1.5.2", - "chalk": "2.4.2", - "q": "1.5.1" + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" }, "dependencies": { "ansi-styles": { @@ -4203,7 +4487,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4211,9 +4495,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -4221,7 +4505,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4231,33 +4515,13 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "2.0.2", - "for-own": "1.0.0", - "make-iterator": "1.0.1" - }, - "dependencies": { - "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.2" - } - } - } - }, "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.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color": { @@ -4265,8 +4529,8 @@ "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.3" + "color-convert": "^1.9.1", + "color-string": "^1.5.2" } }, "color-convert": { @@ -4287,21 +4551,16 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, "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" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -4329,7 +4588,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", "requires": { - "mime-db": "1.40.0" + "mime-db": ">= 1.40.0 < 2" } }, "compression": { @@ -4337,13 +4596,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.17", + "compressible": "~2.0.16", "debug": "2.6.9", - "on-headers": "1.0.2", + "on-headers": "~1.0.2", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" } }, "concat-map": { @@ -4356,10 +4615,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "confusing-browser-globals": { @@ -4377,7 +4636,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -4398,6 +4657,16 @@ "safe-buffer": "5.1.2" } }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -4408,7 +4677,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -4431,12 +4700,12 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "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": { @@ -4444,15 +4713,6 @@ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "1.3.2", - "is-plain-object": "2.0.4" - } - }, "core-js": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", @@ -4463,9 +4723,9 @@ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.4.tgz", "integrity": "sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==", "requires": { - "browserslist": "4.6.4", + "browserslist": "^4.6.2", "core-js-pure": "3.1.4", - "semver": "6.2.0" + "semver": "^6.1.1" }, "dependencies": { "browserslist": { @@ -4473,9 +4733,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "semver": { @@ -4495,15 +4755,24 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "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" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" } }, "create-ecdh": { @@ -4511,8 +4780,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.5.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -4520,11 +4789,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.4", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "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": { @@ -4532,12 +4801,12 @@ "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.4", - "create-hash": "1.2.0", - "inherits": "2.0.4", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "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": { @@ -4545,8 +4814,8 @@ "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==", "requires": { - "fbjs": "0.8.17", - "gud": "1.0.0" + "fbjs": "^0.8.0", + "gud": "^1.0.0" } }, "cross-spawn": { @@ -4554,11 +4823,11 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "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": { @@ -4566,17 +4835,17 @@ "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.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.4", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" + "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": { @@ -4589,8 +4858,8 @@ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", "requires": { - "postcss": "7.0.17", - "timsort": "0.3.0" + "postcss": "^7.0.1", + "timsort": "^0.3.0" }, "dependencies": { "ansi-styles": { @@ -4598,7 +4867,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4606,9 +4875,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -4616,7 +4885,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4626,9 +4895,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -4641,7 +4910,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -4651,18 +4920,18 @@ "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.1", - "icss-utils": "2.1.0", - "loader-utils": "1.2.3", - "lodash.camelcase": "4.3.0", - "postcss": "6.0.23", - "postcss-modules-extract-imports": "1.2.1", - "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.1", - "source-list-map": "2.0.1" + "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": { @@ -4670,10 +4939,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.3", - "domutils": "1.7.0", - "nth-check": "1.0.2" + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" } }, "css-select-base-adapter": { @@ -4686,9 +4955,9 @@ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" }, "dependencies": { "regexpu-core": { @@ -4696,9 +4965,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } } } @@ -4708,8 +4977,8 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" } }, "css-unit-converter": { @@ -4742,10 +5011,10 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", "requires": { - "cosmiconfig": "5.2.1", - "cssnano-preset-default": "4.0.7", - "is-resolvable": "1.1.0", - "postcss": "7.0.17" + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -4753,7 +5022,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4761,9 +5030,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -4771,7 +5040,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4781,9 +5050,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -4796,7 +5065,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -4806,36 +5075,36 @@ "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.17", - "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" + "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": { @@ -4843,7 +5112,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4851,9 +5120,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -4861,7 +5130,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4871,9 +5140,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -4886,7 +5155,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -4906,7 +5175,7 @@ "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.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -4914,7 +5183,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -4922,9 +5191,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -4932,7 +5201,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4942,9 +5211,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -4957,7 +5226,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -4980,8 +5249,8 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", "requires": { - "mdn-data": "1.1.4", - "source-map": "0.5.7" + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" } } } @@ -4996,7 +5265,7 @@ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz", "integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==", "requires": { - "cssom": "0.3.8" + "cssom": "~0.3.6" } }, "cyclist": { @@ -5009,8 +5278,8 @@ "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" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, "damerau-levenshtein": { @@ -5023,7 +5292,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-urls": { @@ -5031,9 +5300,9 @@ "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.3.0", - "whatwg-url": "7.0.0" + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" } }, "date-now": { @@ -5064,7 +5333,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "deep-eql": { @@ -5072,7 +5341,7 @@ "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.8" + "type-detect": "^4.0.0" } }, "deep-equal": { @@ -5085,28 +5354,13 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "5.1.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==" - } - } - }, "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" + "execa": "^0.10.0", + "ip-regex": "^2.1.0" }, "dependencies": { "execa": { @@ -5114,13 +5368,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "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" } } } @@ -5130,20 +5384,20 @@ "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" + "strip-bom": "^2.0.0" } }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "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.1.1" + "object-keys": "^1.0.12" } }, "define-property": { @@ -5151,8 +5405,8 @@ "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" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -5160,7 +5414,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5168,7 +5422,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5176,9 +5430,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -5193,12 +5447,12 @@ "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.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.3" + "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": { @@ -5206,11 +5460,11 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { - "array-union": "1.0.2", - "glob": "7.1.4", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "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": { @@ -5242,8 +5496,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -5251,17 +5505,12 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, "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.1" + "repeating": "^2.0.0" } }, "detect-newline": { @@ -5279,8 +5528,8 @@ "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.3", - "debug": "2.6.9" + "address": "^1.0.1", + "debug": "^2.6.0" } }, "diff": { @@ -5293,9 +5542,9 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -5303,8 +5552,8 @@ "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" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -5312,7 +5561,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pify": { @@ -5332,8 +5581,8 @@ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -5341,7 +5590,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -5349,7 +5598,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-converter": { @@ -5357,7 +5606,7 @@ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "requires": { - "utila": "0.4.0" + "utila": "~0.4" } }, "dom-helpers": { @@ -5365,7 +5614,7 @@ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", "requires": { - "@babel/runtime": "7.5.3" + "@babel/runtime": "^7.1.2" } }, "dom-serializer": { @@ -5373,14 +5622,14 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "requires": { - "domelementtype": "1.3.1", - "entities": "1.1.2" + "domelementtype": "^1.3.0", + "entities": "^1.1.1" } }, "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + "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", @@ -5397,7 +5646,7 @@ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "requires": { - "webidl-conversions": "4.0.2" + "webidl-conversions": "^4.0.2" } }, "domhandler": { @@ -5405,7 +5654,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "requires": { - "domelementtype": "1.3.1" + "domelementtype": "1" } }, "domutils": { @@ -5413,8 +5662,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "requires": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -5422,7 +5671,7 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dotenv": { @@ -5435,39 +5684,25 @@ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "create-hmac": "1.1.7" - } - }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.4", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "requires": { - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -5475,8 +5710,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -5494,13 +5729,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "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" } }, "emoji-regex": { @@ -5523,7 +5758,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -5531,7 +5766,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -5539,9 +5774,9 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "requires": { - "graceful-fs": "4.2.0", - "memory-fs": "0.4.1", - "tapable": "1.1.3" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, "entities": { @@ -5554,7 +5789,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -5562,7 +5797,7 @@ "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" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -5570,12 +5805,44 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4", - "object-keys": "1.1.1" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } } }, "es-to-primitive": { @@ -5583,19 +5850,19 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es5-ext": { - "version": "0.10.50", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", - "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "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.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" } }, "es6-iterator": { @@ -5603,29 +5870,18 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.1", - "es5-ext": "0.10.50", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1.0.1", - "es5-ext": "0.10.50" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "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", - "es5-ext": "0.10.50", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "^1.0.1", + "ext": "^1.1.2" } }, "escape-html": { @@ -5643,11 +5899,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -5668,44 +5924,44 @@ "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.10.1", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "4.0.3", - "eslint-utils": "1.3.1", - "eslint-visitor-keys": "1.0.0", - "espree": "4.1.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.4", - "globals": "11.12.0", - "ignore": "4.0.6", - "imurmurhash": "0.1.4", - "inquirer": "6.4.1", - "is-resolvable": "1.1.0", - "js-yaml": "3.13.1", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "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.3", - "regexpp": "2.0.1", - "require-uncached": "1.0.3", - "semver": "5.7.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.3", - "text-table": "0.2.0" + "@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": { @@ -5718,7 +5974,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5726,9 +5982,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "debug": { @@ -5736,7 +5992,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "eslint-scope": { @@ -5744,8 +6000,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "globals": { @@ -5763,7 +6019,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -5771,7 +6027,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5781,7 +6037,7 @@ "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.7" + "confusing-browser-globals": "^1.0.6" } }, "eslint-import-resolver-node": { @@ -5789,8 +6045,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", "requires": { - "debug": "2.6.9", - "resolve": "1.8.1" + "debug": "^2.6.9", + "resolve": "^1.5.0" } }, "eslint-loader": { @@ -5798,11 +6054,11 @@ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", "integrity": "sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==", "requires": { - "loader-fs-cache": "1.0.2", - "loader-utils": "1.2.3", - "object-assign": "4.1.1", - "object-hash": "1.3.1", - "rimraf": "2.6.3" + "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": { @@ -5810,8 +6066,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", "requires": { - "debug": "2.6.9", - "pkg-dir": "2.0.0" + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" } }, "eslint-plugin-flowtype": { @@ -5819,7 +6075,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz", "integrity": "sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.10" } }, "eslint-plugin-import": { @@ -5827,16 +6083,16 @@ "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.9", + "contains-path": "^0.1.0", + "debug": "^2.6.8", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.2", - "eslint-module-utils": "2.4.0", - "has": "1.0.3", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0", - "resolve": "1.8.1" + "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": { @@ -5844,8 +6100,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "load-json-file": { @@ -5853,10 +6109,10 @@ "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.2.0", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -5864,7 +6120,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "path-type": { @@ -5872,7 +6128,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "read-pkg": { @@ -5880,9 +6136,9 @@ "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.5.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -5890,8 +6146,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "strip-bom": { @@ -5906,14 +6162,14 @@ "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.2", - "damerau-levenshtein": "1.0.5", - "emoji-regex": "6.5.1", - "has": "1.0.3", - "jsx-ast-utils": "2.2.1" + "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": { @@ -5921,11 +6177,11 @@ "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.2.1", - "prop-types": "15.7.2" + "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": { @@ -5933,8 +6189,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -5952,9 +6208,9 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "requires": { - "acorn": "6.2.0", - "acorn-jsx": "5.0.1", - "eslint-visitor-keys": "1.0.0" + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" } }, "esprima": { @@ -5967,7 +6223,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -5975,7 +6231,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5998,94 +6254,120 @@ "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" + "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==", + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", + "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz", + "integrity": "sha512-GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.5.0", - "xhr-request-promise": "0.1.2" + "js-sha3": "^0.8.0" } }, - "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" + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" }, "ethereumjs-tx": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", - "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "requires": { - "ethereum-common": "0.0.18", - "ethereumjs-util": "5.2.0" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, "ethereumjs-util": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", - "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", - "requires": { - "bn.js": "4.11.8", - "create-hash": "1.2.0", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", "ethjs-util": "0.1.6", - "keccak": "1.4.0", - "rlp": "2.2.3", - "safe-buffer": "5.1.2", - "secp256k1": "3.7.1" - } - }, - "ethers": { - "version": "4.0.32", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.32.tgz", - "integrity": "sha512-r0k2tBNF6MYEsvwmINeP3VPppD/7eAZyiOk/ifDDawXGCKqr3iEQkPq6OZSDVD+4Jie38WPteS9thXzpn2+A5Q==", - "requires": { - "@types/node": "10.14.12", - "aes-js": "3.0.0", - "bn.js": "4.11.8", - "elliptic": "6.3.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" + "rlp": "^2.2.3" }, "dependencies": { "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "inherits": "2.0.4" - } - }, - "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.4", - "minimalistic-assert": "1.0.1" + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } - }, - "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=" } } }, @@ -6129,7 +6411,7 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "requires": { - "original": "1.0.2" + "original": "^1.0.0" } }, "evp_bytestokey": { @@ -6137,8 +6419,8 @@ "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.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exec-sh": { @@ -6146,7 +6428,7 @@ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", "requires": { - "merge": "1.2.1" + "merge": "^1.2.0" } }, "execa": { @@ -6154,13 +6436,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "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" }, "dependencies": { "cross-spawn": { @@ -6168,9 +6450,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -6185,7 +6467,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -6193,15 +6475,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.4" - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "1.0.3" + "fill-range": "^2.1.0" } }, "expect": { @@ -6209,12 +6483,12 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz", "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==", "requires": { - "ansi-styles": "3.2.1", - "jest-diff": "23.6.0", - "jest-get-type": "22.4.3", - "jest-matcher-utils": "23.6.0", - "jest-message-util": "23.4.0", - "jest-regex-util": "23.3.0" + "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": { @@ -6222,7 +6496,7 @@ "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.3" + "color-convert": "^1.9.0" } } } @@ -6232,36 +6506,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", "content-disposition": "0.5.3", - "content-type": "1.0.4", + "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", + "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", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.5", + "proxy-addr": "~2.0.5", "qs": "6.7.0", - "range-parser": "1.2.1", + "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", + "statuses": "~1.5.0", + "type-is": "~1.6.18", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "array-flatten": { @@ -6276,6 +6550,21 @@ } } }, + "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.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -6286,8 +6575,8 @@ "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" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -6295,7 +6584,7 @@ "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" + "is-plain-object": "^2.0.4" } } } @@ -6305,9 +6594,9 @@ "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" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { @@ -6315,7 +6604,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -6323,17 +6612,6 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "parse-node-version": "1.0.1", - "time-stamp": "1.1.0" - } - }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", @@ -6344,12 +6622,12 @@ "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.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.2.3", - "micromatch": "3.1.10" + "@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" }, "dependencies": { "arr-diff": { @@ -6367,16 +6645,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -6384,7 +6662,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6394,13 +6672,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -6408,7 +6686,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -6416,7 +6694,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -6424,7 +6702,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6432,7 +6710,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6442,7 +6720,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6450,7 +6728,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6460,9 +6738,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -6477,14 +6755,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -6492,7 +6770,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -6500,7 +6778,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6510,10 +6788,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -6521,7 +6799,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6531,8 +6809,8 @@ "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.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -6540,7 +6818,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -6550,7 +6828,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -6558,7 +6836,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -6566,9 +6844,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -6581,7 +6859,7 @@ "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-extglob": "^2.1.1" } }, "is-number": { @@ -6589,7 +6867,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6597,7 +6875,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6612,19 +6890,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } } } @@ -6649,7 +6927,7 @@ "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.7.3" + "websocket-driver": ">=0.5.1" } }, "fb-watchman": { @@ -6657,7 +6935,7 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "requires": { - "bser": "2.1.0" + "bser": "^2.0.0" } }, "fbjs": { @@ -6665,13 +6943,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.20" + "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": { @@ -6691,7 +6969,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -6699,8 +6977,8 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "file-loader": { @@ -6708,15 +6986,10 @@ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", "requires": { - "loader-utils": "1.2.3", - "schema-utils": "1.0.0" + "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", @@ -6727,8 +7000,8 @@ "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "requires": { - "glob": "7.1.4", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "filesize": { @@ -6741,11 +7014,11 @@ "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.1.0", - "randomatic": "3.1.1", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" }, "dependencies": { "isobject": { @@ -6764,12 +7037,12 @@ "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" + "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": { @@ -6777,9 +7050,9 @@ "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.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { @@ -6787,20 +7060,113 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "requires": { + "is-buffer": "~2.0.3" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + } + } + }, + "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" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" + }, + "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" + } + }, + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "requires": { + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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": { - "detect-file": "1.0.0", - "is-glob": "4.0.1", - "micromatch": "3.1.10", - "resolve-dir": "1.0.1" + "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" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -6816,16 +7182,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -6833,23 +7199,33 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.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" + } + }, "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.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -6857,7 +7233,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -6865,7 +7241,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -6873,7 +7249,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6881,7 +7257,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6891,7 +7267,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -6899,7 +7275,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6909,9 +7285,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -6926,14 +7302,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -6941,7 +7317,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -6949,7 +7325,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6959,10 +7335,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -6970,7 +7346,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -6980,7 +7356,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -6988,7 +7364,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -6996,22 +7372,9 @@ "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" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -7019,7 +7382,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7027,7 +7390,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7042,396 +7405,27 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "2.0.2", - "is-plain-object": "2.0.4", - "object.defaults": "1.1.0", - "object.pick": "1.3.0", - "parse-filepath": "1.0.2" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, - "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.3", - "graceful-fs": "4.2.0", - "rimraf": "2.6.3", - "write": "0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" - }, - "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.4", - "readable-stream": "2.3.6" - } - }, - "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "requires": { - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "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==" - } - } - }, - "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.4" - } - }, - "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.2" - } - }, - "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.26.0", - "chalk": "2.4.2", - "chokidar": "2.1.6", - "lodash": "4.17.11", - "micromatch": "3.1.10", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "tapable": "1.1.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.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "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.1" - } - } - } - }, - "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.5.0" - } - }, - "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.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "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.6" - } - }, - "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.1" - } - }, - "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.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "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.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "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.1.0" - } - }, - "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==" - } - } - }, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "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.2" - } - }, - "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.1" - } - } - } - }, - "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.1" - }, - "dependencies": { - "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.1" - } - } - } - }, - "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.2" - } - }, - "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.2" - } - }, - "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" - } - }, - "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.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "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" + "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" + } + }, + "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" } } } @@ -7441,9 +7435,9 @@ "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.8", - "mime-types": "2.1.24" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -7456,7 +7450,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -7469,8 +7463,8 @@ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-extra": { @@ -7478,18 +7472,17 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", "requires": { - "graceful-fs": "4.2.0", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "requires": { - "graceful-fs": "4.2.0", - "through2": "2.0.5" + "minipass": "^2.6.0" } }, "fs-write-stream-atomic": { @@ -7497,10 +7490,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.2.0", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -7514,8 +7507,8 @@ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "optional": true, "requires": { - "nan": "2.14.0", - "node-pre-gyp": "0.10.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { @@ -7527,7 +7520,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true }, "aproba": { "version": "1.2.0", @@ -7541,19 +7535,21 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -7568,17 +7564,20 @@ "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=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "optional": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7619,7 +7618,7 @@ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -7634,14 +7633,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -7650,12 +7649,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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-unicode": { @@ -7670,7 +7669,7 @@ "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -7688,14 +7687,15 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "optional": true }, "ini": { "version": "1.3.5", @@ -7707,6 +7707,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -7721,6 +7722,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "optional": true, "requires": { "brace-expansion": "1.1.11" } @@ -7728,15 +7730,17 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "optional": true }, "minipass": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -7745,13 +7749,14 @@ "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7768,9 +7773,9 @@ "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -7779,16 +7784,16 @@ "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -7823,16 +7828,17 @@ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "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=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7844,8 +7850,9 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -7888,10 +7895,10 @@ "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -7908,13 +7915,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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" } }, "rimraf": { @@ -7923,13 +7930,14 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7965,10 +7973,11 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -7977,15 +7986,16 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -8000,13 +8010,13 @@ "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -8021,18 +8031,20 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "optional": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "optional": true } } }, @@ -8056,6 +8068,23 @@ "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" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + } + } + }, "get-own-enumerable-property-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", @@ -8076,7 +8105,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -8084,12 +8113,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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": { @@ -8097,8 +8126,8 @@ "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.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -8106,48 +8135,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "3.0.2", - "glob": "7.1.4", - "glob-parent": "3.1.0", - "is-negated-glob": "1.0.0", - "ordered-read-streams": "1.0.1", - "pumpify": "1.5.1", - "readable-stream": "2.3.6", - "remove-trailing-separator": "1.1.0", - "to-absolute-glob": "2.0.2", - "unique-stream": "2.3.1" - }, - "dependencies": { - "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.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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.1" - } - } + "is-glob": "^2.0.0" } }, "glob-to-regexp": { @@ -8155,33 +8143,13 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "requires": { - "anymatch": "2.0.0", - "async-done": "1.3.2", - "chokidar": "2.1.6", - "is-negated-glob": "1.0.0", - "just-debounce": "1.0.0", - "object.defaults": "1.1.0" - } - }, "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "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.5.2" - }, - "dependencies": { - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - } + "min-document": "^2.19.0", + "process": "^0.11.10" } }, "global-modules": { @@ -8189,7 +8157,7 @@ "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": "^3.0.0" } }, "global-prefix": { @@ -8197,9 +8165,9 @@ "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" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "dependencies": { "kind-of": { @@ -8219,13 +8187,13 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.4", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.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": { @@ -8240,12 +8208,32 @@ } } }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "1.0.1" + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "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" + } + } } }, "graceful-fs": { @@ -8254,9 +8242,9 @@ "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" }, "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" }, "growly": { "version": "1.3.0", @@ -8268,141 +8256,13 @@ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "5.0.3", - "gulp-cli": "2.2.0", - "undertaker": "1.2.1", - "vinyl-fs": "3.0.3" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "requires": { - "ansi-colors": "1.1.0", - "archy": "1.0.0", - "array-sort": "1.0.0", - "color-support": "1.1.3", - "concat-stream": "1.6.2", - "copy-props": "2.0.4", - "fancy-log": "1.3.3", - "gulplog": "1.0.0", - "interpret": "1.2.0", - "isobject": "3.0.1", - "liftoff": "3.1.0", - "matchdep": "2.0.0", - "mute-stdout": "1.0.1", - "pretty-hrtime": "1.0.3", - "replace-homedir": "1.0.0", - "semver-greatest-satisfied-range": "1.1.0", - "v8flags": "3.1.3", - "yargs": "7.1.0" - } - }, - "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.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "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.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.3", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "1.0.2" - } - }, "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" + "duplexer": "^0.1.1", + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -8417,9 +8277,9 @@ "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": "^1.1.0", + "h2x-parse": "^1.1.1", + "h2x-traverse": "^1.1.0" } }, "h2x-generate": { @@ -8427,7 +8287,7 @@ "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-traverse": "^1.1.0" } }, "h2x-parse": { @@ -8435,8 +8295,8 @@ "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": "15.1.1" + "h2x-types": "^1.1.0", + "jsdom": ">=11.0.0" } }, "h2x-plugin-jsx": { @@ -8444,7 +8304,7 @@ "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-types": "^1.1.0" } }, "h2x-traverse": { @@ -8452,7 +8312,7 @@ "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": "^1.1.0" } }, "h2x-types": { @@ -8470,10 +8330,10 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "requires": { - "neo-async": "2.6.1", - "optimist": "0.6.1", - "source-map": "0.6.1", - "uglify-js": "3.4.10" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { "source-map": { @@ -8493,8 +8353,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "6.10.1", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "harmony-reflect": { @@ -8507,7 +8367,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -8515,7 +8375,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -8523,19 +8383,32 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, "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.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -8543,8 +8416,8 @@ "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" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -8552,7 +8425,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8560,7 +8433,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8570,7 +8443,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8580,8 +8453,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -8589,8 +8462,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "he": { @@ -8608,9 +8481,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -8623,16 +8496,8 @@ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "1.0.0" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hoopy": { @@ -8650,10 +8515,10 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "inherits": "2.0.4", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "hsl-regex": { @@ -8676,7 +8541,7 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "requires": { - "whatwg-encoding": "1.0.5" + "whatwg-encoding": "^1.0.1" } }, "html-entities": { @@ -8689,13 +8554,13 @@ "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.0", - "clean-css": "4.2.1", - "commander": "2.17.1", - "he": "1.2.0", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.4.10" + "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": { @@ -8711,11 +8576,11 @@ "integrity": "sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw==", "requires": { "@types/tapable": "1.0.2", - "html-minifier": "3.5.21", - "loader-utils": "1.2.3", - "lodash": "4.17.11", - "pretty-error": "2.1.1", - "tapable": "1.1.3", + "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" } }, @@ -8724,12 +8589,12 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "requires": { - "domelementtype": "1.3.1", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.2", - "inherits": "2.0.4", - "readable-stream": "3.4.0" + "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": { "readable-stream": { @@ -8737,13 +8602,18 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -8754,10 +8624,10 @@ "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", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, "dependencies": { @@ -8768,6 +8638,11 @@ } } }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, "http-parser-js": { "version": "0.4.10", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", @@ -8778,9 +8653,9 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "requires": { - "eventemitter3": "3.1.2", - "follow-redirects": "1.7.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -8788,10 +8663,10 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", "requires": { - "http-proxy": "1.17.0", - "is-glob": "4.0.1", - "lodash": "4.17.11", - "micromatch": "3.1.10" + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" }, "dependencies": { "arr-diff": { @@ -8809,16 +8684,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -8826,7 +8701,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8836,13 +8711,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -8850,7 +8725,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -8858,7 +8733,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -8866,7 +8741,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8874,7 +8749,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8884,7 +8759,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8892,7 +8767,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -8902,9 +8777,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -8919,14 +8794,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -8934,7 +8809,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -8942,7 +8817,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8952,10 +8827,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -8963,7 +8838,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -8973,7 +8848,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -8981,7 +8856,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -8989,9 +8864,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -9004,7 +8879,7 @@ "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-extglob": "^2.1.1" } }, "is-number": { @@ -9012,7 +8887,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -9020,7 +8895,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -9035,19 +8910,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } } } @@ -9057,9 +8932,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -9072,7 +8947,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { @@ -9085,7 +8960,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "requires": { - "postcss": "6.0.23" + "postcss": "^6.0.1" } }, "identity-obj-proxy": { @@ -9093,7 +8968,7 @@ "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", "requires": { - "harmony-reflect": "1.6.1" + "harmony-reflect": "^1.4.6" } }, "idna-uts46-hx": { @@ -9136,7 +9011,7 @@ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "requires": { - "import-from": "2.1.0" + "import-from": "^2.1.0" } }, "import-fresh": { @@ -9144,8 +9019,8 @@ "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" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, "import-from": { @@ -9153,7 +9028,7 @@ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "import-local": { @@ -9161,8 +9036,8 @@ "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" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -9180,8 +9055,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -9199,19 +9074,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz", "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "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.11", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.5.2", - "string-width": "2.1.1", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "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": { @@ -9224,7 +9099,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9232,9 +9107,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-ansi": { @@ -9242,7 +9117,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } }, "supports-color": { @@ -9250,7 +9125,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9260,21 +9135,16 @@ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", "requires": { - "default-gateway": "2.7.2", - "ipaddr.js": "1.9.0" + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" - }, "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.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -9297,15 +9167,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "1.0.0", - "is-windows": "1.0.2" - } - }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", @@ -9316,7 +9177,15 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" + } + }, + "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": { @@ -9329,7 +9198,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.13.1" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -9347,7 +9216,7 @@ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "requires": { - "ci-info": "1.6.0" + "ci-info": "^1.5.0" } }, "is-color-stop": { @@ -9355,12 +9224,12 @@ "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" + "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-data-descriptor": { @@ -9368,7 +9237,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -9381,9 +9250,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -9408,7 +9277,7 @@ "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-primitive": "^2.0.0" } }, "is-extendable": { @@ -9426,7 +9295,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -9435,9 +9304,9 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + "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", @@ -9449,7 +9318,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-hex-prefixed": { @@ -9457,17 +9326,22 @@ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "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": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -9475,6 +9349,11 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -9485,7 +9364,7 @@ "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.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -9493,15 +9372,20 @@ "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.2" + "path-is-inside": "^1.0.1" } }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, "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" + "isobject": "^3.0.1" } }, "is-posix-bracket": { @@ -9524,7 +9408,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-regexp": { @@ -9532,35 +9416,42 @@ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "1.0.0" - } - }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, "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-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, "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.2" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -9568,7 +9459,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-typedarray": { @@ -9576,24 +9467,11 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "0.1.2" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -9614,7 +9492,7 @@ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" } }, "isexe": { @@ -9632,8 +9510,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "3.0.0" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isstream": { @@ -9646,17 +9524,17 @@ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", "requires": { - "async": "2.6.2", - "fileset": "2.0.3", - "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.13.1", - "mkdirp": "0.5.1", - "once": "1.4.0" + "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": { @@ -9669,7 +9547,7 @@ "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" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -9677,13 +9555,13 @@ "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.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.1", - "semver": "5.7.0" + "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": { @@ -9691,10 +9569,10 @@ "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.6", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { @@ -9707,7 +9585,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9717,11 +9595,11 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", "requires": { - "debug": "3.2.6", - "istanbul-lib-coverage": "1.2.1", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "source-map": "0.5.7" + "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": { @@ -9729,7 +9607,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -9744,7 +9622,30 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", "requires": { - "handlebars": "4.1.2" + "handlebars": "^4.0.3" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "iterate-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", + "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==" + }, + "iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "requires": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" } }, "jest": { @@ -9752,8 +9653,8 @@ "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" + "import-local": "^1.0.0", + "jest-cli": "^23.6.0" }, "dependencies": { "ansi-regex": { @@ -9766,7 +9667,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9774,9 +9675,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "jest-cli": { @@ -9784,42 +9685,42 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz", "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "exit": "0.1.2", - "glob": "7.1.4", - "graceful-fs": "4.2.0", - "import-local": "1.0.0", - "is-ci": "1.2.1", - "istanbul-api": "1.3.7", - "istanbul-lib-coverage": "1.2.1", - "istanbul-lib-instrument": "1.10.2", - "istanbul-lib-source-maps": "1.2.6", - "jest-changed-files": "23.4.2", - "jest-config": "23.6.0", - "jest-environment-jsdom": "23.4.0", - "jest-get-type": "22.4.3", - "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.4.0", - "prompts": "0.1.14", - "realpath-native": "1.1.0", - "rimraf": "2.6.3", - "slash": "1.0.0", - "string-length": "2.0.0", - "strip-ansi": "4.0.0", - "which": "1.3.1", - "yargs": "11.1.0" + "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" } }, "strip-ansi": { @@ -9827,7 +9728,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -9835,7 +9736,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9845,7 +9746,7 @@ "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.1.0" + "throat": "^4.0.0" } }, "jest-config": { @@ -9853,20 +9754,20 @@ "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.26.3", - "babel-jest": "23.6.0", - "chalk": "2.4.2", - "glob": "7.1.4", - "jest-environment-jsdom": "23.4.0", - "jest-environment-node": "23.4.0", - "jest-get-type": "22.4.3", - "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" + "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": { @@ -9874,7 +9775,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9882,9 +9783,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -9892,7 +9793,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9902,10 +9803,10 @@ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", "requires": { - "chalk": "2.4.2", - "diff": "3.5.0", - "jest-get-type": "22.4.3", - "pretty-format": "23.6.0" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-styles": { @@ -9913,7 +9814,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9921,9 +9822,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -9931,7 +9832,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9941,7 +9842,7 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", "requires": { - "detect-newline": "2.1.0" + "detect-newline": "^2.1.0" } }, "jest-each": { @@ -9949,8 +9850,8 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz", "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==", "requires": { - "chalk": "2.4.2", - "pretty-format": "23.6.0" + "chalk": "^2.0.1", + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-styles": { @@ -9958,7 +9859,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -9966,9 +9867,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -9976,7 +9877,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9986,9 +9887,9 @@ "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.12.0" + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0", + "jsdom": "^11.5.1" }, "dependencies": { "acorn": { @@ -10001,32 +9902,32 @@ "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.7.3", - "acorn-globals": "4.3.2", - "array-equal": "1.0.0", - "cssom": "0.3.8", - "cssstyle": "1.3.0", - "data-urls": "1.1.0", - "domexception": "1.0.1", - "escodegen": "1.11.1", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.3.0", - "nwsapi": "2.1.4", + "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.88.0", - "request-promise-native": "1.0.7", - "sax": "1.2.4", - "symbol-tree": "3.2.4", - "tough-cookie": "2.5.0", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.5", - "whatwg-mimetype": "2.3.0", - "whatwg-url": "6.5.0", - "ws": "5.2.2", - "xml-name-validator": "3.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": { @@ -10039,8 +9940,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.2.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "whatwg-url": { @@ -10048,9 +9949,9 @@ "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" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "ws": { @@ -10058,7 +9959,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { - "async-limiter": "1.0.0" + "async-limiter": "~1.0.0" } } } @@ -10068,8 +9969,8 @@ "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-mock": "^23.2.0", + "jest-util": "^23.4.0" } }, "jest-get-type": { @@ -10082,14 +9983,14 @@ "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.2.0", - "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.5.2" + "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" } }, "jest-jasmine2": { @@ -10097,18 +9998,18 @@ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz", "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==", "requires": { - "babel-traverse": "6.26.0", - "chalk": "2.4.2", - "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" + "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": { @@ -10116,7 +10017,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10124,9 +10025,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10134,7 +10035,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10144,7 +10045,7 @@ "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" + "pretty-format": "^23.6.0" } }, "jest-matcher-utils": { @@ -10152,9 +10053,9 @@ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", "requires": { - "chalk": "2.4.2", - "jest-get-type": "22.4.3", - "pretty-format": "23.6.0" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-styles": { @@ -10162,7 +10063,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10170,9 +10071,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10180,7 +10081,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10190,11 +10091,11 @@ "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", - "chalk": "2.4.2", - "micromatch": "2.3.11", - "slash": "1.0.0", - "stack-utils": "1.0.2" + "@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": { @@ -10202,7 +10103,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10210,9 +10111,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10220,7 +10121,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10245,9 +10146,9 @@ "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.4.2", - "realpath-native": "1.1.0" + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -10255,7 +10156,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10263,9 +10164,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10273,7 +10174,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10283,8 +10184,8 @@ "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-regex-util": "^23.3.0", + "jest-snapshot": "^23.6.0" } }, "jest-runner": { @@ -10292,19 +10193,19 @@ "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.2.0", - "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.12", - "throat": "4.1.0" + "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": { @@ -10317,8 +10218,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } @@ -10328,27 +10229,27 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz", "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==", "requires": { - "babel-core": "6.26.3", - "babel-plugin-istanbul": "4.1.6", - "chalk": "2.4.2", - "convert-source-map": "1.6.0", - "exit": "0.1.2", - "fast-json-stable-stringify": "2.0.0", - "graceful-fs": "4.2.0", - "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.1.0", - "slash": "1.0.0", + "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.4.3", - "yargs": "11.1.0" + "write-file-atomic": "^2.1.0", + "yargs": "^11.0.0" }, "dependencies": { "ansi-styles": { @@ -10356,7 +10257,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10364,9 +10265,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "strip-bom": { @@ -10379,7 +10280,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10394,16 +10295,16 @@ "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.26.0", - "chalk": "2.4.2", - "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.7.0" + "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": { @@ -10411,7 +10312,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10419,9 +10320,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10429,7 +10330,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10439,14 +10340,14 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz", "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", "requires": { - "callsites": "2.0.0", - "chalk": "2.4.2", - "graceful-fs": "4.2.0", - "is-ci": "1.2.1", - "jest-message-util": "23.4.0", - "mkdirp": "0.5.1", - "slash": "1.0.0", - "source-map": "0.6.1" + "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": { @@ -10454,7 +10355,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10462,9 +10363,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "source-map": { @@ -10477,7 +10378,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10487,10 +10388,10 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz", "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==", "requires": { - "chalk": "2.4.2", - "jest-get-type": "22.4.3", - "leven": "2.1.0", - "pretty-format": "23.6.0" + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^23.6.0" }, "dependencies": { "ansi-styles": { @@ -10498,7 +10399,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10506,9 +10407,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10516,7 +10417,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10526,9 +10427,9 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz", "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "string-length": "2.0.0" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "string-length": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -10536,7 +10437,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -10544,9 +10445,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -10554,7 +10455,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -10564,7 +10465,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", "requires": { - "merge-stream": "1.0.1" + "merge-stream": "^1.0.1" } }, "joi": { @@ -10572,9 +10473,9 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz", "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==", "requires": { - "hoek": "4.2.1", - "isemail": "3.2.0", - "topo": "2.0.2" + "hoek": "4.x.x", + "isemail": "3.x.x", + "topo": "2.x.x" } }, "js-levenshtein": { @@ -10583,9 +10484,9 @@ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" }, "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "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", @@ -10597,8 +10498,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -10611,32 +10512,32 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.1.1.tgz", "integrity": "sha512-cQZRBB33arrDAeCrAEWn1U3SvrvC8XysBua9Oqg1yWrsY/gYcusloJC3RZJXuY5eehSCmws8f2YeliCqGSkrtQ==", "requires": { - "abab": "2.0.0", - "acorn": "6.2.0", - "acorn-globals": "4.3.2", - "array-equal": "1.0.0", - "cssom": "0.3.8", - "cssstyle": "1.3.0", - "data-urls": "1.1.0", - "domexception": "1.0.1", - "escodegen": "1.11.1", - "html-encoding-sniffer": "1.0.2", - "nwsapi": "2.1.4", + "abab": "^2.0.0", + "acorn": "^6.1.1", + "acorn-globals": "^4.3.2", + "array-equal": "^1.0.0", + "cssom": "^0.3.6", + "cssstyle": "^1.2.2", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.1", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.4", "parse5": "5.1.0", - "pn": "1.1.0", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "saxes": "3.1.11", - "symbol-tree": "3.2.4", - "tough-cookie": "3.0.1", - "w3c-hr-time": "1.0.1", - "w3c-xmlserializer": "1.1.2", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.5", - "whatwg-mimetype": "2.3.0", - "whatwg-url": "7.0.0", - "ws": "7.1.0", - "xml-name-validator": "3.0.0" + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", + "xml-name-validator": "^3.0.0" } }, "jsesc": { @@ -10644,6 +10545,11 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "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", @@ -10664,7 +10570,7 @@ "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" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -10692,7 +10598,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.2.0" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -10716,24 +10622,17 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", "requires": { - "array-includes": "3.0.3", - "object.assign": "4.1.0" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" - }, "keccak": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", - "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", "requires": { - "bindings": "1.5.0", - "inherits": "2.0.4", - "nan": "2.14.0", - "safe-buffer": "5.1.2" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, "keycode": { @@ -10741,6 +10640,14 @@ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -10751,15 +10658,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "4.2.0" + "is-buffer": "^1.1.5" } }, "kleur": { @@ -10772,17 +10671,8 @@ "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.11", - "webpack-sources": "1.3.0" - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "2.0.0", - "es6-weak-map": "2.0.3" + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" } }, "lazy-cache": { @@ -10790,28 +10680,12 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "2.3.6" - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "1.1.1" + "invert-kv": "^1.0.0" } }, "left-pad": { @@ -10825,27 +10699,12 @@ "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" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "extend": "3.0.2", - "findup-sync": "3.0.0", - "fined": "1.2.0", - "flagged-respawn": "1.0.1", - "is-plain-object": "2.0.4", - "object.map": "1.0.1", - "rechoir": "0.6.2", - "resolve": "1.8.1" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -10853,11 +10712,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.2.0", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "parse-json": { @@ -10865,7 +10724,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } } } @@ -10875,7 +10734,7 @@ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", "requires": { - "find-cache-dir": "0.1.1", + "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" }, "dependencies": { @@ -10884,9 +10743,9 @@ "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" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -10894,8 +10753,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -10903,7 +10762,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -10911,7 +10770,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -10926,9 +10785,9 @@ "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.1.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" }, "dependencies": { "json5": { @@ -10936,7 +10795,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "minimist": { @@ -10951,8 +10810,8 @@ "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" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -10990,8 +10849,8 @@ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { @@ -10999,7 +10858,7 @@ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", "requires": { - "lodash._reinterpolate": "3.0.0" + "lodash._reinterpolate": "~3.0.0" } }, "lodash.uniq": { @@ -11007,6 +10866,42 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.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" + } + } + } + }, "loglevel": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz", @@ -11017,7 +10912,7 @@ "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.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lower-case": { @@ -11025,13 +10920,18 @@ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, "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" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -11039,345 +10939,50 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.4" - } - }, - "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" - } - }, - "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.1" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "2.0.0", - "micromatch": "3.1.10", - "resolve": "1.8.1", - "stack-trace": "0.0.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "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.1" - } - } - } - }, - "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.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "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.6" - } - }, - "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.1" - } - }, - "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.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "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.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "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.1.0" - } - }, - "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==" - } - } - }, - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "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.2" - } - }, - "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.1" - } - } - } - }, - "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.1" - }, - "dependencies": { - "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.1" - } - } - } - }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "1.0.0", - "is-glob": "3.1.0", - "micromatch": "3.1.10", - "resolve-dir": "1.0.1" - } - }, - "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.2" - } - }, - "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.2" - } - }, - "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" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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.1" - } - }, - "is-number": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "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.6" - } - } - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" } } }, + "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" + } + }, + "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", @@ -11388,9 +10993,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "mdn-data": { @@ -11408,7 +11013,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -11416,15 +11021,10 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "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", @@ -11435,9 +11035,9 @@ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", "requires": { - "arr-union": "3.1.0", - "clone-deep": "0.2.4", - "kind-of": "3.2.2" + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" } }, "merge-descriptors": { @@ -11450,7 +11050,7 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.1" } }, "merge2": { @@ -11468,19 +11068,19 @@ "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.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "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" } }, "miller-rabin": { @@ -11488,8 +11088,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -11525,7 +11125,7 @@ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "mini-css-extract-plugin": { @@ -11533,9 +11133,9 @@ "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.2.3", - "schema-utils": "1.0.0", - "webpack-sources": "1.3.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" } }, "minimalistic-assert": { @@ -11553,7 +11153,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -11561,21 +11161,45 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, "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.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "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": { @@ -11583,8 +11207,8 @@ "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" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -11592,7 +11216,7 @@ "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" + "is-plain-object": "^2.0.4" } } } @@ -11602,8 +11226,8 @@ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { "for-in": { @@ -11621,85 +11245,409 @@ "minimist": "0.0.8" } }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, "mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz", + "integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==", "requires": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.3.1", + "debug": "3.2.6", + "diff": "4.0.2", "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" + "find-up": "4.1.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "ms": "2.1.2", + "object.assign": "4.1.0", + "promise.allsettled": "1.0.2", + "serialize-javascript": "3.0.0", + "strip-json-comments": "3.0.1", + "supports-color": "7.1.0", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.0.0", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" }, "dependencies": { - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "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" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "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==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "is-glob": "^4.0.1" } }, "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.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==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "requires": { + "picomatch": "^2.0.7" + } + }, + "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + "serialize-javascript": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz", + "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } }, - "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==", + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "has-flag": "2.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, + "mock-fs": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", + "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==" + }, "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.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "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": { @@ -11707,13 +11655,38 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "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" + } + } + } + }, "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.3" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -11721,10 +11694,48 @@ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "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" + } + }, + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } }, "mute-stream": { "version": "0.0.7", @@ -11734,24 +11745,30 @@ "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { "arr-diff": { @@ -11801,16 +11818,21 @@ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "1.1.4" + "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": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -11818,6 +11840,11 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" }, + "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", @@ -11828,29 +11855,29 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "requires": { - "assert": "1.5.0", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.0.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "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.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", + "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.1", - "vm-browserify": "1.1.0" + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -11865,11 +11892,11 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", "requires": { - "growly": "1.3.0", - "is-wsl": "1.1.0", - "semver": "5.7.0", - "shellwords": "0.1.1", - "which": "1.3.1" + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" } }, "node-releases": { @@ -11877,7 +11904,7 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz", "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==", "requires": { - "semver": "5.7.0" + "semver": "^5.3.0" } }, "normalize-package-data": { @@ -11885,10 +11912,10 @@ "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.7.1", - "resolve": "1.11.1", - "semver": "5.7.0", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "resolve": { @@ -11896,7 +11923,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } } } @@ -11906,7 +11933,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -11919,20 +11946,12 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "1.4.0" - } - }, "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.1" + "path-key": "^2.0.0" } }, "nth-check": { @@ -11940,7 +11959,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -11989,9 +12008,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -11999,7 +12018,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -12009,6 +12028,11 @@ "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-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -12019,7 +12043,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { @@ -12027,31 +12051,10 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "1.0.1", - "array-slice": "1.1.0", - "for-own": "1.0.0", - "isobject": "3.0.1" - }, - "dependencies": { - "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.2" - } - } + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { @@ -12059,27 +12062,8 @@ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "1.0.0", - "make-iterator": "1.0.1" - }, - "dependencies": { - "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.2" - } - } + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.omit": { @@ -12087,8 +12071,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -12096,26 +12080,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "1.0.0", - "make-iterator": "1.0.1" - }, - "dependencies": { - "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.2" - } - } + "isobject": "^3.0.1" } }, "object.values": { @@ -12123,10 +12088,18 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" } }, "obuf": { @@ -12152,7 +12125,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -12160,7 +12133,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -12168,7 +12141,7 @@ "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -12176,8 +12149,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "wordwrap": { @@ -12192,8 +12165,8 @@ "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.10", - "last-call-webpack-plugin": "3.0.0" + "cssnano": "^4.1.0", + "last-call-webpack-plugin": "^3.0.0" } }, "optionator": { @@ -12201,20 +12174,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "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", - "wordwrap": "1.0.0" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "2.3.6" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "original": { @@ -12222,7 +12187,7 @@ "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.7" + "url-parse": "^1.4.3" } }, "original-require": { @@ -12245,9 +12210,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "os-tmpdir": { @@ -12255,6 +12220,11 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -12275,7 +12245,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -12283,7 +12253,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -12291,6 +12261,14 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", @@ -12306,9 +12284,9 @@ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.4", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "param-case": { @@ -12316,7 +12294,7 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "parse-asn1": { @@ -12324,22 +12302,12 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17", - "safe-buffer": "5.1.2" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "1.0.0", - "map-cache": "0.2.2", - "path-root": "0.1.1" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-glob": { @@ -12347,40 +12315,26 @@ "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.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-headers": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", - "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", - "requires": { - "for-each": "0.3.3", - "string.prototype.trim": "1.1.2" - } + "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.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", @@ -12431,19 +12385,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "0.1.2" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -12454,9 +12395,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pathval": { @@ -12469,11 +12410,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -12481,6 +12422,11 @@ "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==" + }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -12496,7 +12442,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -12504,7 +12450,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pkg-up": { @@ -12512,7 +12458,7 @@ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -12540,9 +12486,9 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -12562,9 +12508,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "5.5.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "ansi-styles": { @@ -12572,7 +12518,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12580,9 +12526,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "source-map": { @@ -12595,7 +12541,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12605,8 +12551,8 @@ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz", "integrity": "sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A==", "requires": { - "postcss": "7.0.17", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0" }, "dependencies": { "ansi-styles": { @@ -12614,7 +12560,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12622,9 +12568,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12632,7 +12578,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12642,9 +12588,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12657,7 +12603,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12667,10 +12613,10 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", "requires": { - "css-unit-converter": "1.1.1", - "postcss": "7.0.17", - "postcss-selector-parser": "5.0.0", - "postcss-value-parser": "3.3.1" + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" }, "dependencies": { "ansi-styles": { @@ -12678,7 +12624,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12686,9 +12632,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12696,7 +12642,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12706,9 +12652,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12721,7 +12667,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12731,8 +12677,8 @@ "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.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12740,7 +12686,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12748,9 +12694,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12758,7 +12704,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12768,9 +12714,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12783,7 +12729,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12793,9 +12739,9 @@ "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.17", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12803,7 +12749,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12811,9 +12757,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12821,7 +12767,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12831,9 +12777,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12846,7 +12792,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12856,8 +12802,8 @@ "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.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -12865,7 +12811,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12873,9 +12819,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12883,7 +12829,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12893,9 +12839,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12908,7 +12854,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12918,9 +12864,9 @@ "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.17", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12928,7 +12874,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12936,9 +12882,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -12946,7 +12892,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -12956,9 +12902,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -12971,7 +12917,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -12981,8 +12927,8 @@ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "requires": { - "postcss": "7.0.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -12990,7 +12936,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -12998,9 +12944,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13008,7 +12954,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13018,9 +12964,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13033,7 +12979,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13043,11 +12989,11 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", "requires": { - "browserslist": "4.6.4", - "color": "3.1.2", - "has": "1.0.3", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "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": { @@ -13055,7 +13001,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -13063,9 +13009,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -13073,9 +13019,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13083,7 +13029,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13093,9 +13039,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13108,7 +13054,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13118,8 +13064,8 @@ "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.17", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -13127,7 +13073,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13135,9 +13081,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13145,7 +13091,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13155,9 +13101,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13170,7 +13116,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13180,7 +13126,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.14" }, "dependencies": { "ansi-styles": { @@ -13188,7 +13134,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13196,9 +13142,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13206,7 +13152,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13216,9 +13162,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13231,7 +13177,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13241,8 +13187,8 @@ "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" + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" }, "dependencies": { "ansi-styles": { @@ -13250,7 +13196,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13258,9 +13204,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13268,7 +13214,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13278,9 +13224,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13293,7 +13239,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13303,8 +13249,8 @@ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "requires": { - "postcss": "7.0.17", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "ansi-styles": { @@ -13312,7 +13258,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13320,9 +13266,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13330,7 +13276,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13340,9 +13286,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13355,7 +13301,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13365,8 +13311,8 @@ "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.17", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "ansi-styles": { @@ -13374,7 +13320,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13382,9 +13328,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13392,7 +13338,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13402,9 +13348,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13417,7 +13363,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13427,7 +13373,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -13435,7 +13381,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13443,9 +13389,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13453,7 +13399,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13463,9 +13409,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13478,7 +13424,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13488,7 +13434,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -13496,7 +13442,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13504,9 +13450,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13514,7 +13460,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13524,9 +13470,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13539,7 +13485,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13549,7 +13495,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -13557,7 +13503,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13565,9 +13511,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13575,7 +13521,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13585,9 +13531,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13600,7 +13546,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13610,7 +13556,7 @@ "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.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -13618,7 +13564,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13626,9 +13572,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13636,7 +13582,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13646,9 +13592,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13661,7 +13607,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13671,8 +13617,8 @@ "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.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -13680,7 +13626,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13688,9 +13634,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13698,7 +13644,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13708,9 +13654,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13723,7 +13669,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13733,8 +13679,8 @@ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "requires": { - "postcss": "7.0.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -13742,7 +13688,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13750,9 +13696,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13760,7 +13706,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13770,9 +13716,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13785,7 +13731,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13795,7 +13741,7 @@ "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.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -13803,7 +13749,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13811,9 +13757,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13821,7 +13767,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13831,9 +13777,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13846,7 +13792,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13856,7 +13802,7 @@ "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.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -13864,7 +13810,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13872,9 +13818,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13882,7 +13828,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13892,9 +13838,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13907,7 +13853,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13917,7 +13863,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -13925,7 +13871,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13933,9 +13879,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -13943,7 +13889,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -13953,9 +13899,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -13968,7 +13914,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -13978,7 +13924,7 @@ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -13986,7 +13932,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -13994,9 +13940,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14004,7 +13950,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14014,9 +13960,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14029,7 +13975,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14039,7 +13985,7 @@ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -14047,7 +13993,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14055,9 +14001,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14065,7 +14011,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14075,9 +14021,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14090,7 +14036,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14100,8 +14046,8 @@ "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.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -14109,7 +14055,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14117,9 +14063,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14127,7 +14073,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14137,9 +14083,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14152,7 +14098,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14162,8 +14108,8 @@ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.0.tgz", "integrity": "sha512-WzrqZ5nG9R9fUtrA+we92R4jhVvEB32IIRTzfIG/PLL8UV4CvbF1ugTEHEFX6vWxl41Xt5RTCJPEZkuWzrOM+Q==", "requires": { - "lodash.template": "4.4.0", - "postcss": "7.0.17" + "lodash.template": "^4.2.4", + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -14171,7 +14117,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14179,9 +14125,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14189,7 +14135,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14199,9 +14145,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14214,7 +14160,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14224,9 +14170,9 @@ "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.17", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -14234,7 +14180,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14242,9 +14188,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14252,7 +14198,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14262,9 +14208,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14277,7 +14223,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14287,8 +14233,8 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", "requires": { - "cosmiconfig": "5.2.1", - "import-cwd": "2.1.0" + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" } }, "postcss-loader": { @@ -14296,10 +14242,10 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", "requires": { - "loader-utils": "1.2.3", - "postcss": "7.0.17", - "postcss-load-config": "2.1.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -14307,7 +14253,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14315,9 +14261,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14325,7 +14271,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14335,9 +14281,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14350,7 +14296,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14360,7 +14306,7 @@ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -14368,7 +14314,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14376,9 +14322,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14386,7 +14332,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14396,9 +14342,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14411,7 +14357,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14421,7 +14367,7 @@ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -14429,7 +14375,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14437,9 +14383,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14447,7 +14393,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14457,9 +14403,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14472,7 +14418,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14483,9 +14429,9 @@ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", "requires": { "css-color-names": "0.0.4", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1", - "stylehacks": "4.0.3" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" }, "dependencies": { "ansi-styles": { @@ -14493,7 +14439,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14501,9 +14447,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14511,7 +14457,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14521,9 +14467,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14536,7 +14482,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14546,12 +14492,12 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "requires": { - "browserslist": "4.6.4", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.1", - "postcss": "7.0.17", - "postcss-selector-parser": "3.1.1", - "vendors": "1.0.3" + "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": { @@ -14559,7 +14505,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -14567,9 +14513,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -14577,9 +14523,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14587,7 +14533,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14597,9 +14543,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "postcss-selector-parser": { @@ -14607,9 +14553,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -14622,7 +14568,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14632,8 +14578,8 @@ "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.17", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -14641,7 +14587,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14649,9 +14595,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14659,7 +14605,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14669,9 +14615,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14684,7 +14630,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14694,10 +14640,10 @@ "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.1.0", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "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": { @@ -14705,7 +14651,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14713,9 +14659,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14723,7 +14669,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14733,9 +14679,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14748,7 +14694,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14758,12 +14704,12 @@ "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.2", - "browserslist": "4.6.4", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" + "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": { @@ -14771,7 +14717,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -14779,9 +14725,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -14789,9 +14735,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14799,7 +14745,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14809,9 +14755,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14824,7 +14770,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14834,10 +14780,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "7.0.17", - "postcss-selector-parser": "3.1.1" + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -14845,7 +14791,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14853,9 +14799,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14863,7 +14809,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14873,9 +14819,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "postcss-selector-parser": { @@ -14883,9 +14829,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -14898,7 +14844,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -14908,7 +14854,7 @@ "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.23" + "postcss": "^6.0.1" } }, "postcss-modules-local-by-default": { @@ -14916,8 +14862,8 @@ "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.1", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-scope": { @@ -14925,8 +14871,8 @@ "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.1", - "postcss": "6.0.23" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-values": { @@ -14934,8 +14880,8 @@ "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.23" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" } }, "postcss-nesting": { @@ -14943,7 +14889,7 @@ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.0.tgz", "integrity": "sha512-WSsbVd5Ampi3Y0nk/SKr5+K34n52PqMqEfswu6RtU4r7wA8vSD+gM8/D9qq4aJkHImwn1+9iEFTbjoWsQeqtaQ==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -14951,7 +14897,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -14959,9 +14905,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -14969,7 +14915,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -14979,9 +14925,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -14994,7 +14940,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15004,7 +14950,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -15012,7 +14958,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15020,9 +14966,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15030,7 +14976,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15040,9 +14986,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15055,7 +15001,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15065,9 +15011,9 @@ "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.17", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15075,7 +15021,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15083,9 +15029,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15093,7 +15039,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15103,9 +15049,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15118,7 +15064,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15128,10 +15074,10 @@ "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.3", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15139,7 +15085,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15147,9 +15093,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15157,7 +15103,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15167,9 +15113,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15182,7 +15128,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15192,10 +15138,10 @@ "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.17", - "postcss-value-parser": "3.3.1" + "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": { @@ -15203,7 +15149,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15211,9 +15157,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15221,7 +15167,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15231,9 +15177,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15246,7 +15192,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15256,9 +15202,9 @@ "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.3", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15266,7 +15212,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15274,9 +15220,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15284,7 +15230,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15294,9 +15240,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15309,7 +15255,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15319,9 +15265,9 @@ "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.17", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15329,7 +15275,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15337,9 +15283,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15347,7 +15293,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15357,9 +15303,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15372,7 +15318,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15382,9 +15328,9 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", "requires": { - "browserslist": "4.6.4", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15392,7 +15338,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -15400,9 +15346,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -15410,9 +15356,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15420,7 +15366,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15430,9 +15376,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15445,7 +15391,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15455,10 +15401,10 @@ "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.1.0", - "normalize-url": "3.3.0", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15466,7 +15412,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15474,9 +15420,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15484,7 +15430,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15494,9 +15440,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15509,7 +15455,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15519,8 +15465,8 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", "requires": { - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15528,7 +15474,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15536,9 +15482,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15546,7 +15492,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15556,9 +15502,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15571,7 +15517,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15581,9 +15527,9 @@ "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.17", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -15591,7 +15537,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15599,9 +15545,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15609,7 +15555,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15619,9 +15565,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15634,7 +15580,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15644,7 +15590,7 @@ "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.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -15652,7 +15598,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15660,9 +15606,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15670,7 +15616,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15680,9 +15626,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15695,7 +15641,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15705,7 +15651,7 @@ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "requires": { - "postcss": "7.0.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -15713,7 +15659,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15721,9 +15667,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15731,7 +15677,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15741,9 +15687,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15756,7 +15702,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15766,8 +15712,8 @@ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "requires": { - "postcss": "7.0.17", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -15775,7 +15721,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15783,9 +15729,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15793,7 +15739,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15803,9 +15749,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15818,7 +15764,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15828,40 +15774,40 @@ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.3.1.tgz", "integrity": "sha512-erl+OcCTr1+jsfJNQjBweyb8Y1s6KngUBwoqJnRXO197PmEE6u9HxZfnpKkTQqasxZljxNHzXR5hMb7MdD0Zdw==", "requires": { - "autoprefixer": "9.6.1", - "browserslist": "4.6.4", - "caniuse-lite": "1.0.30000981", - "cssdb": "4.4.0", - "postcss": "7.0.17", - "postcss-attribute-case-insensitive": "4.0.1", - "postcss-color-functional-notation": "2.0.1", - "postcss-color-gray": "5.0.0", - "postcss-color-hex-alpha": "5.0.3", - "postcss-color-mod-function": "3.0.3", - "postcss-color-rebeccapurple": "4.0.1", - "postcss-custom-media": "7.0.8", - "postcss-custom-properties": "8.0.11", - "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" + "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": { @@ -15869,7 +15815,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -15877,9 +15823,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -15887,9 +15833,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15897,7 +15843,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15907,9 +15853,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15922,7 +15868,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15932,8 +15878,8 @@ "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.17", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "ansi-styles": { @@ -15941,7 +15887,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -15949,9 +15895,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -15959,7 +15905,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -15969,9 +15915,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -15984,7 +15930,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -15994,10 +15940,10 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", "requires": { - "browserslist": "4.6.4", - "caniuse-api": "3.0.0", - "has": "1.0.3", - "postcss": "7.0.17" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -16005,7 +15951,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -16013,9 +15959,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -16023,9 +15969,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16033,7 +15979,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16043,9 +15989,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16058,7 +16004,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16068,10 +16014,10 @@ "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.3", - "postcss": "7.0.17", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -16079,7 +16025,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16087,9 +16033,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16097,7 +16043,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16107,9 +16053,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16122,7 +16068,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16132,7 +16078,7 @@ "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.17" + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -16140,7 +16086,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16148,9 +16094,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16158,7 +16104,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16168,9 +16114,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16183,7 +16129,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16193,7 +16139,7 @@ "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.17" + "postcss": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -16201,7 +16147,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16209,9 +16155,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16219,7 +16165,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16229,9 +16175,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16244,7 +16190,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16254,8 +16200,8 @@ "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.17" + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -16263,7 +16209,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16271,9 +16217,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16281,7 +16227,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16291,9 +16237,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16306,7 +16252,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16316,8 +16262,8 @@ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", "requires": { - "balanced-match": "1.0.0", - "postcss": "7.0.17" + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" }, "dependencies": { "ansi-styles": { @@ -16325,7 +16271,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16333,9 +16279,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16343,7 +16289,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16353,9 +16299,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16368,7 +16314,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16378,9 +16324,9 @@ "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" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" }, "dependencies": { "cssesc": { @@ -16395,10 +16341,10 @@ "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.17", - "postcss-value-parser": "3.3.1", - "svgo": "1.2.2" + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" }, "dependencies": { "ansi-styles": { @@ -16406,7 +16352,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16414,9 +16360,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16424,7 +16370,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16434,9 +16380,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16449,7 +16395,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16459,9 +16405,9 @@ "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.2", - "postcss": "7.0.17", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" }, "dependencies": { "ansi-styles": { @@ -16469,7 +16415,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -16477,9 +16423,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -16487,7 +16433,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -16497,9 +16443,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -16512,7 +16458,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -16527,9 +16473,9 @@ "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" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "prelude-ls": { @@ -16537,6 +16483,11 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -16557,8 +16508,8 @@ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "requires": { - "renderkid": "2.0.3", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "pretty-format": { @@ -16566,8 +16517,8 @@ "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.1" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" }, "dependencies": { "ansi-regex": { @@ -16580,16 +16531,11 @@ "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.3" + "color-convert": "^1.9.0" } } } }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -16615,7 +16561,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { @@ -16623,13 +16569,85 @@ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, + "promise.allsettled": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", + "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", + "requires": { + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "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" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "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-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" + } + }, + "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" + } + } + } + }, "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.2", - "sisteransi": "0.1.1" + "kleur": "^2.0.1", + "sisteransi": "^0.1.1" } }, "prop-types": { @@ -16637,9 +16655,9 @@ "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.6" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "prop-types-extra": { @@ -16647,8 +16665,8 @@ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.0.tgz", "integrity": "sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==", "requires": { - "react-is": "16.8.6", - "warning": "3.0.0" + "react-is": "^16.3.2", + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -16656,7 +16674,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -16666,7 +16684,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.9.0" } }, @@ -16690,12 +16708,12 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.4", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "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": { @@ -16703,8 +16721,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -16712,9 +16730,9 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.4", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { "pump": { @@ -16722,8 +16740,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -16748,9 +16766,9 @@ "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.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -16773,7 +16791,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" } }, "randomatic": { @@ -16781,9 +16799,9 @@ "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.2", - "math-random": "1.0.4" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -16803,7 +16821,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -16811,8 +16829,8 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -16843,10 +16861,10 @@ "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz", "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.6" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" } }, "react-app-polyfill": { @@ -16871,7 +16889,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.2.tgz", "integrity": "sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.6" } } } @@ -16881,21 +16899,21 @@ "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.0-beta.5.tgz", "integrity": "sha512-Osm0OtTbYwfsT1rpu88ESWuAHZxfaHFNKFiW8w3w+6YY9/bLEPHbGRZA6W21fg5yvcuKN9hJKT857TTHgY7SoQ==", "requires": { - "@babel/runtime": "7.5.3", + "@babel/runtime": "^7.2.0", "@react-bootstrap/react-popper": "1.2.1", - "classnames": "2.2.6", - "dom-helpers": "3.4.0", - "invariant": "2.2.4", - "keycode": "2.2.0", - "popper.js": "1.15.0", - "prop-types": "15.7.2", - "prop-types-extra": "1.1.0", - "react-context-toolbox": "2.0.2", - "react-overlays": "1.2.0", - "react-prop-types": "0.4.0", - "react-transition-group": "2.9.0", - "uncontrollable": "6.2.3", - "warning": "4.0.3" + "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": { @@ -16926,7 +16944,7 @@ "loader-utils": "1.2.3", "opn": "5.4.0", "pkg-up": "2.0.0", - "react-error-overlay": "5.1.6", + "react-error-overlay": "^5.1.4", "recursive-readdir": "2.2.2", "shell-quote": "1.6.1", "sockjs-client": "1.3.0", @@ -16944,7 +16962,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -16952,9 +16970,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" } }, "chalk": { @@ -16962,9 +16980,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "find-up": { @@ -16972,7 +16990,7 @@ "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": "^3.0.0" } }, "inquirer": { @@ -16980,19 +16998,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "2.0.0", - "lodash": "4.17.11", + "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.3.0", - "rxjs": "6.5.2", - "string-width": "2.1.1", - "strip-ansi": "5.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" } }, "locate-path": { @@ -17000,8 +17018,8 @@ "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-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "p-limit": { @@ -17009,7 +17027,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -17017,7 +17035,7 @@ "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.2.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -17030,7 +17048,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.0.0" } }, "supports-color": { @@ -17038,7 +17056,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -17048,10 +17066,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz", "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.6" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" } }, "react-error-overlay": { @@ -17074,14 +17092,14 @@ "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.7.2", - "prop-types-extra": "1.1.0", - "react-context-toolbox": "2.0.2", - "react-popper": "1.3.3", - "uncontrollable": "6.2.3", - "warning": "4.0.3" + "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": { @@ -17089,12 +17107,12 @@ "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.3.tgz", "integrity": "sha512-ynMZBPkXONPc5K4P5yFWgZx5JGAUIP3pGGLNs58cfAPgK67olx7fmLp+AdpZ0+GoQ+ieFDa/z4cdV6u7sioH6w==", "requires": { - "@babel/runtime": "7.5.3", - "create-react-context": "0.2.2", - "popper.js": "1.15.0", - "prop-types": "15.7.2", - "typed-styles": "0.0.7", - "warning": "4.0.3" + "@babel/runtime": "^7.1.2", + "create-react-context": "<=0.2.2", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" }, "dependencies": { "create-react-context": { @@ -17102,8 +17120,8 @@ "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", "requires": { - "fbjs": "0.8.17", - "gud": "1.0.0" + "fbjs": "^0.8.0", + "gud": "^1.0.0" } }, "typed-styles": { @@ -17118,7 +17136,7 @@ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -17126,7 +17144,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -17142,8 +17160,8 @@ "babel-eslint": "9.0.0", "babel-jest": "23.6.0", "babel-loader": "8.0.4", - "babel-plugin-named-asset-import": "0.3.2", - "babel-preset-react-app": "7.0.2", + "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", @@ -17151,7 +17169,7 @@ "dotenv": "6.0.0", "dotenv-expand": "4.2.0", "eslint": "5.6.0", - "eslint-config-react-app": "3.0.8", + "eslint-config-react-app": "^3.0.6", "eslint-loader": "2.1.1", "eslint-plugin-flowtype": "2.50.1", "eslint-plugin-import": "2.14.0", @@ -17173,8 +17191,8 @@ "postcss-loader": "3.0.0", "postcss-preset-env": "6.3.1", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "0.2.2", - "react-dev-utils": "7.0.5", + "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", @@ -17191,7 +17209,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "babel-core": { @@ -17204,9 +17222,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -17214,7 +17232,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -17224,10 +17242,10 @@ "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.7.2", - "react-lifecycles-compat": "3.0.4" + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" } }, "read-pkg": { @@ -17235,9 +17253,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -17245,8 +17263,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -17254,8 +17272,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -17263,7 +17281,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -17273,13 +17291,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "readdirp": { @@ -17287,9 +17305,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "4.2.0", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "arr-diff": { @@ -17307,16 +17325,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -17324,7 +17342,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -17334,13 +17352,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -17348,7 +17366,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -17356,7 +17374,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -17364,7 +17382,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17372,7 +17390,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17382,7 +17400,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17390,7 +17408,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17400,9 +17418,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -17417,14 +17435,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -17432,7 +17450,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -17440,7 +17458,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -17450,10 +17468,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -17461,7 +17479,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -17471,7 +17489,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -17479,7 +17497,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -17487,9 +17505,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -17497,7 +17515,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -17505,7 +17523,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -17520,19 +17538,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } } } @@ -17542,15 +17560,7 @@ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", "requires": { - "util.promisify": "1.0.0" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "1.8.1" + "util.promisify": "^1.0.0" } }, "recursive-readdir": { @@ -17571,7 +17581,7 @@ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", "requires": { - "regenerate": "1.4.0" + "regenerate": "^1.4.0" } }, "regenerator-runtime": { @@ -17584,9 +17594,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -17594,7 +17604,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -17602,8 +17612,8 @@ "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" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexp-tree": { @@ -17621,9 +17631,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -17636,7 +17646,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "relateurl": { @@ -17644,25 +17654,6 @@ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "1.1.6", - "is-utf8": "0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "3.0.0", - "safe-buffer": "5.1.2", - "through2": "2.0.5" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -17673,11 +17664,11 @@ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", "requires": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.10.1", - "strip-ansi": "3.0.1", - "utila": "0.4.0" + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" }, "dependencies": { "css-select": { @@ -17685,10 +17676,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.3", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.2" + "nth-check": "~1.0.1" } }, "domutils": { @@ -17696,8 +17687,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.1.1", - "domelementtype": "1.3.1" + "dom-serializer": "0", + "domelementtype": "1" } } } @@ -17717,22 +17708,7 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "1.0.3", - "is-absolute": "1.0.0", - "remove-trailing-separator": "1.1.0" + "is-finite": "^1.0.0" } }, "request": { @@ -17740,26 +17716,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.8", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.24", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "punycode": { @@ -17772,8 +17748,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "1.2.0", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } } } @@ -17783,7 +17759,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "request-promise-native": { @@ -17792,8 +17768,8 @@ "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", "requires": { "request-promise-core": "1.1.2", - "stealthy-require": "1.1.1", - "tough-cookie": "2.5.0" + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" }, "dependencies": { "tough-cookie": { @@ -17801,8 +17777,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.2.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } } } @@ -17812,11 +17788,6 @@ "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", @@ -17827,8 +17798,8 @@ "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.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "caller-path": { @@ -17836,7 +17807,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsites": { @@ -17861,7 +17832,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" } }, "resolve-cwd": { @@ -17869,40 +17840,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.2", - "resolve-dir": "1.0.1" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.3", - "ini": "1.3.5", - "is-windows": "1.0.2", - "which": "1.3.1" - } - } + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -17910,26 +17848,26 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "3.0.0" - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "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.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -17952,7 +17890,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "7.1.4" + "glob": "^7.1.3" } }, "ripemd160": { @@ -17960,17 +17898,16 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.4" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rlp": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.3.tgz", - "integrity": "sha512-l6YVrI7+d2vpW6D6rS05x2Xrmq8oW7v3pieZOJKBEdjuTF4Kz/iwk55Zyh1Zaz+KOB2kC8+2jZlp2u9L4tTzCQ==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", "requires": { - "bn.js": "4.11.8", - "safe-buffer": "5.1.2" + "bn.js": "^4.11.1" } }, "rsvp": { @@ -17983,7 +17920,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -17991,7 +17928,7 @@ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rxjs": { @@ -17999,7 +17936,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", "requires": { - "tslib": "1.10.0" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -18012,7 +17949,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -18025,15 +17962,15 @@ "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.2", - "fb-watchman": "2.0.0", - "fsevents": "1.2.4", - "micromatch": "3.1.10", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" + "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" }, "dependencies": { "arr-diff": { @@ -18051,16 +17988,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -18068,7 +18005,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -18078,13 +18015,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -18092,7 +18029,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -18100,7 +18037,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -18108,7 +18045,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -18116,7 +18053,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -18126,7 +18063,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -18134,7 +18071,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -18144,9 +18081,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -18161,14 +18098,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -18176,7 +18113,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -18184,7 +18121,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -18194,10 +18131,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -18205,7 +18142,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -18215,7 +18152,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -18223,7 +18160,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -18231,9 +18168,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -18241,7 +18178,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -18249,7 +18186,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -18264,19 +18201,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } }, "minimist": { @@ -18291,12 +18228,12 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.2.3", - "lodash.tail": "4.1.1", - "neo-async": "2.6.1", - "pify": "3.0.0", - "semver": "5.7.0" + "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": { @@ -18304,10 +18241,10 @@ "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.2", - "shallow-clone": "1.0.0" + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" } }, "for-own": { @@ -18315,7 +18252,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "kind-of": { @@ -18333,9 +18270,9 @@ "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.1.0", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -18357,7 +18294,7 @@ "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", "requires": { - "xmlchars": "2.1.1" + "xmlchars": "^2.1.1" } }, "scheduler": { @@ -18365,8 +18302,8 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "schema-utils": { @@ -18374,45 +18311,45 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.10.1", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "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": { - "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.17" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, "secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "requires": { - "bindings": "1.5.0", - "bip66": "1.1.5", - "bn.js": "4.11.8", - "create-hash": "1.2.0", - "drbg.js": "1.0.1", - "elliptic": "6.5.0", - "nan": "2.14.0", - "safe-buffer": "5.1.2" + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "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" + } + } } }, "select-hose": { @@ -18433,32 +18370,24 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "1.5.0" - } - }, "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", + "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", + "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" + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { "mime": { @@ -18483,13 +18412,13 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.24", - "parseurl": "1.3.3" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "http-errors": { @@ -18497,10 +18426,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "inherits": { @@ -18520,12 +18449,24 @@ "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", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", "send": "0.17.1" } }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -18536,10 +18477,10 @@ "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.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -18547,7 +18488,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -18567,8 +18508,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { @@ -18576,10 +18517,10 @@ "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.7", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -18587,7 +18528,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.0.2" } }, "lazy-cache": { @@ -18602,7 +18543,7 @@ "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": "^1.0.0" } }, "shebang-regex": { @@ -18615,10 +18556,10 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "shellwords": { @@ -18632,18 +18573,18 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + "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.4.0", - "simple-concat": "1.0.0" + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, "simple-swizzle": { @@ -18651,7 +18592,7 @@ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "requires": { - "is-arrayish": "0.3.2" + "is-arrayish": "^0.3.1" }, "dependencies": { "is-arrayish": { @@ -18676,7 +18617,7 @@ "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" + "is-fullwidth-code-point": "^2.0.0" } }, "snapdragon": { @@ -18684,14 +18625,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "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": { @@ -18699,7 +18640,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -18707,7 +18648,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -18717,9 +18658,9 @@ "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.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -18727,7 +18668,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -18735,7 +18676,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -18743,7 +18684,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -18751,9 +18692,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -18768,7 +18709,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sockjs": { @@ -18776,8 +18717,8 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.3.2" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" }, "dependencies": { "faye-websocket": { @@ -18785,7 +18726,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.3" + "websocket-driver": ">=0.5.1" } } } @@ -18795,12 +18736,12 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", "requires": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.3", - "inherits": "2.0.4", - "json3": "3.3.3", - "url-parse": "1.4.7" + "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": { @@ -18808,7 +18749,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -18818,41 +18759,6 @@ } } }, - "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.4.0", - "memorystream": "0.3.1", - "require-from-string": "2.0.2", - "semver": "5.7.0", - "yargs": "11.1.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.2.0", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.3" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "4.2.0" - } - } - } - }, "solidity-parser-antlr": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/solidity-parser-antlr/-/solidity-parser-antlr-0.4.11.tgz", @@ -18873,11 +18779,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "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" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -18885,7 +18791,7 @@ "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.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -18893,18 +18799,13 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" - }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.4" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -18917,8 +18818,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.4" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -18931,11 +18832,11 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", "requires": { - "debug": "4.1.1", - "handle-thing": "2.0.0", - "http-deceiver": "1.2.7", - "select-hose": "2.0.0", - "spdy-transport": "3.0.0" + "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": { @@ -18943,7 +18844,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -18958,12 +18859,12 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "requires": { - "debug": "4.1.1", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "3.4.0", - "wbuf": "1.7.3" + "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": { @@ -18971,7 +18872,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -18984,9 +18885,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } @@ -18996,7 +18897,7 @@ "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.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -19009,15 +18910,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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": { @@ -19025,7 +18926,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "requires": { - "figgy-pudding": "3.5.1" + "figgy-pudding": "^3.5.1" } }, "stable": { @@ -19033,11 +18934,6 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, "stack-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", @@ -19048,8 +18944,8 @@ "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" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -19057,7 +18953,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -19077,8 +18973,8 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { @@ -19086,25 +18982,20 @@ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, "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.4", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.2" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { @@ -19122,8 +19013,8 @@ "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" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -19136,7 +19027,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -19146,8 +19037,8 @@ "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" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -19160,19 +19051,27 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0", - "function-bind": "1.1.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, "string_decoder": { @@ -19180,7 +19079,7 @@ "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.2" + "safe-buffer": "~5.1.0" } }, "stringify-object": { @@ -19188,9 +19087,9 @@ "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" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" } }, "strip-ansi": { @@ -19198,7 +19097,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -19206,7 +19105,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-comments": { @@ -19214,8 +19113,8 @@ "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" + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" } }, "strip-eof": { @@ -19241,8 +19140,8 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz", "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==", "requires": { - "loader-utils": "1.2.3", - "schema-utils": "0.4.7" + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" }, "dependencies": { "schema-utils": { @@ -19250,8 +19149,8 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "requires": { - "ajv": "6.10.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } } } @@ -19261,9 +19160,9 @@ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "requires": { - "browserslist": "4.6.4", - "postcss": "7.0.17", - "postcss-selector-parser": "3.1.1" + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -19271,7 +19170,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "browserslist": { @@ -19279,9 +19178,9 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", "requires": { - "caniuse-lite": "1.0.30000981", - "electron-to-chromium": "1.3.188", - "node-releases": "1.1.25" + "caniuse-lite": "^1.0.30000981", + "electron-to-chromium": "^1.3.188", + "node-releases": "^1.1.25" } }, "chalk": { @@ -19289,9 +19188,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -19299,7 +19198,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -19309,9 +19208,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "postcss-selector-parser": { @@ -19319,9 +19218,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -19334,7 +19233,7 @@ "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" + "has-flag": "^3.0.0" } } } @@ -19344,34 +19243,25 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, "svgo": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz", "integrity": "sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==", "requires": { - "chalk": "2.4.2", - "coa": "2.0.2", - "css-select": "2.0.2", - "css-select-base-adapter": "0.1.1", + "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.28", - "css-url-regex": "1.1.0", - "csso": "3.5.1", - "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" + "css-url-regex": "^1.1.0", + "csso": "^3.5.1", + "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": { @@ -19379,7 +19269,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -19387,9 +19277,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -19397,7 +19287,90 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" + } + } + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "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" + } + }, + "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" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" } } } @@ -19412,12 +19385,12 @@ "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", "requires": { - "ajv": "6.10.1", - "ajv-keywords": "3.4.1", - "chalk": "2.4.2", - "lodash": "4.17.11", + "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" + "string-width": "^2.1.1" }, "dependencies": { "ansi-styles": { @@ -19425,7 +19398,7 @@ "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.3" + "color-convert": "^1.9.0" } }, "chalk": { @@ -19433,9 +19406,9 @@ "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.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "supports-color": { @@ -19443,7 +19416,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -19453,14 +19426,35 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, "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.20.0", - "source-map": "0.6.1", - "source-map-support": "0.5.12" + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" }, "dependencies": { "source-map": { @@ -19473,8 +19467,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } @@ -19484,14 +19478,14 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", "requires": { - "cacache": "11.3.3", - "find-cache-dir": "2.1.0", - "schema-utils": "1.0.0", - "serialize-javascript": "1.7.0", - "source-map": "0.6.1", - "terser": "3.17.0", - "webpack-sources": "1.3.0", - "worker-farm": "1.7.0" + "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": { @@ -19499,9 +19493,9 @@ "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.1.0", - "pkg-dir": "3.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-up": { @@ -19509,7 +19503,7 @@ "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": "^3.0.0" } }, "locate-path": { @@ -19517,8 +19511,8 @@ "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-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "make-dir": { @@ -19526,8 +19520,8 @@ "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.7.0" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, "p-limit": { @@ -19535,7 +19529,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -19543,7 +19537,7 @@ "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.2.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -19561,7 +19555,7 @@ "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" + "find-up": "^3.0.0" } }, "source-map": { @@ -19576,11 +19570,11 @@ "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.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "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" } }, "text-table": { @@ -19603,17 +19597,8 @@ "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.2" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "2.0.5", - "xtend": "4.0.2" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "thunky": { @@ -19621,11 +19606,6 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==" }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -19636,7 +19616,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "timsort": { @@ -19649,7 +19629,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "tmpl": { @@ -19657,15 +19637,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "1.0.0", - "is-negated-glob": "1.0.0" - } - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -19681,18 +19652,23 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, "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" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -19700,8 +19676,8 @@ "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" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -19709,19 +19685,11 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "2.0.5" - } - }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -19732,7 +19700,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "tough-cookie": { @@ -19740,9 +19708,9 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "requires": { - "ip-regex": "2.1.0", - "psl": "1.2.0", - "punycode": "2.1.1" + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -19750,7 +19718,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "trim-right": { @@ -19759,14 +19727,13 @@ "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==", + "version": "5.1.39", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.1.39.tgz", + "integrity": "sha512-khxuNG7clgxNcAZpnN+QYegJ4doM/Adc4wW/Z+ree1iqrRPl01GvN15JNJq1cWWRKLfCuYxCiwkSaN+Em2raSQ==", "requires": { - "app-module-path": "2.2.0", - "mocha": "4.1.0", - "original-require": "1.0.1", - "solc": "0.5.0" + "app-module-path": "^2.2.0", + "mocha": "8.0.1", + "original-require": "1.0.1" } }, "truffle-flattener": { @@ -19774,10 +19741,10 @@ "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.4.2.tgz", "integrity": "sha512-7qUIzaW8a4vI4nui14wsytht2oaqvqnZ1Iet2wRq2T0bCJ0wb6HByMKQhZKpU46R+n5BMTY4K5n+0ITyeNlmuQ==", "requires": { - "@resolver-engine/imports-fs": "0.2.2", - "find-up": "2.1.0", - "mkdirp": "0.5.1", - "solidity-parser-antlr": "0.4.11", + "@resolver-engine/imports-fs": "^0.2.2", + "find-up": "^2.1.0", + "mkdirp": "^0.5.1", + "solidity-parser-antlr": "^0.4.11", "tsort": "0.0.1" } }, @@ -19806,7 +19773,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -19815,16 +19782,16 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", - "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==" + "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" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -19838,7 +19805,7 @@ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.24" + "mime-types": "~2.1.24" } }, "typed-styles": { @@ -19856,7 +19823,7 @@ "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" + "is-typedarray": "^1.0.0" } }, "ua-parser-js": { @@ -19869,8 +19836,8 @@ "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" + "commander": "~2.19.0", + "source-map": "~0.6.1" }, "dependencies": { "commander": { @@ -19890,14 +19857,14 @@ "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.7", - "serialize-javascript": "1.7.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.3.0", - "worker-farm": "1.7.0" + "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": { @@ -19905,19 +19872,19 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "requires": { - "bluebird": "3.5.5", - "chownr": "1.1.2", - "glob": "7.1.4", - "graceful-fs": "4.2.0", - "lru-cache": "4.1.5", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "y18n": "4.0.0" + "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" } }, "commander": { @@ -19930,16 +19897,16 @@ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "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": { @@ -19947,8 +19914,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "schema-utils": { @@ -19956,8 +19923,8 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "requires": { - "ajv": "6.10.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } }, "source-map": { @@ -19970,7 +19937,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "uglify-es": { @@ -19978,8 +19945,8 @@ "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" + "commander": "~2.13.0", + "source-map": "~0.6.1" } }, "y18n": { @@ -19989,40 +19956,24 @@ } } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "uncontrollable": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-6.2.3.tgz", "integrity": "sha512-VgOAoBU2ptCL2bfTG2Mra0I8i1u6Aq84AFonD5tmCAYSfs3hWvr2Rlw0q2ntoxXTHjcQOmZOh3FKaN+UZVyREQ==", "requires": { - "@babel/runtime": "7.5.3", - "invariant": "2.2.4" - } - }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "requires": { - "arr-flatten": "1.1.0", - "arr-map": "2.0.2", - "bach": "1.2.0", - "collection-map": "1.0.0", - "es6-weak-map": "2.0.3", - "last-run": "1.1.1", - "object.defaults": "1.1.0", - "object.reduce": "1.0.1", - "undertaker-registry": "1.0.1" + "@babel/runtime": "^7.4.5", + "invariant": "^2.2.4" } }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" + "underscore": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", + "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -20034,8 +19985,8 @@ "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.5" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { @@ -20053,10 +20004,10 @@ "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" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "uniq": { @@ -20074,7 +20025,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "2.0.2" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -20082,16 +20033,7 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "0.1.4" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "1.0.1", - "through2-filter": "3.0.0" + "imurmurhash": "^0.1.4" } }, "universalify": { @@ -20114,8 +20056,8 @@ "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.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -20123,9 +20065,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -20160,7 +20102,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -20189,9 +20131,9 @@ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", "requires": { - "loader-utils": "1.2.3", - "mime": "2.4.4", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" } }, "url-parse": { @@ -20199,8 +20141,16 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", "requires": { - "querystringify": "2.1.1", - "requires-port": "1.0.0" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" } }, "url-set-query": { @@ -20208,15 +20158,28 @@ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, "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=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" }, "util": { "version": "0.11.1", @@ -20243,8 +20206,8 @@ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, "utila": { @@ -20262,27 +20225,19 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, - "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", - "requires": { - "homedir-polyfill": "1.0.3" - } - }, "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.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, "vary": { "version": "1.1.2", @@ -20299,60 +20254,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "2.1.2", - "clone-buffer": "1.0.0", - "clone-stats": "1.0.0", - "cloneable-readable": "1.1.3", - "remove-trailing-separator": "1.1.0", - "replace-ext": "1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "1.0.0", - "glob-stream": "6.1.0", - "graceful-fs": "4.2.0", - "is-valid-glob": "1.0.0", - "lazystream": "1.0.0", - "lead": "1.0.0", - "object.assign": "4.1.0", - "pumpify": "1.5.1", - "readable-stream": "2.3.6", - "remove-bom-buffer": "3.0.0", - "remove-bom-stream": "1.2.0", - "resolve-options": "1.1.0", - "through2": "2.0.5", - "to-through": "2.0.0", - "value-or-function": "3.0.0", - "vinyl": "2.2.0", - "vinyl-sourcemap": "1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "1.0.2", - "convert-source-map": "1.6.0", - "graceful-fs": "4.2.0", - "normalize-path": "2.1.1", - "now-and-later": "2.0.1", - "remove-bom-buffer": "3.0.0", - "vinyl": "2.2.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { @@ -20365,7 +20269,7 @@ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", "requires": { - "browser-process-hrtime": "0.1.3" + "browser-process-hrtime": "^0.1.2" } }, "w3c-xmlserializer": { @@ -20373,9 +20277,9 @@ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", "requires": { - "domexception": "1.0.1", - "webidl-conversions": "4.0.2", - "xml-name-validator": "3.0.0" + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" } }, "walker": { @@ -20383,7 +20287,7 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "requires": { - "makeerror": "1.0.11" + "makeerror": "1.0.x" } }, "warning": { @@ -20391,7 +20295,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "watch": { @@ -20399,8 +20303,8 @@ "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", "requires": { - "exec-sh": "0.2.2", - "minimist": "1.2.0" + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -20415,9 +20319,9 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "requires": { - "chokidar": "2.1.6", - "graceful-fs": "4.2.0", - "neo-async": "2.6.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "wbuf": { @@ -20425,277 +20329,324 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz", + "integrity": "sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ==", "requires": { - "@babel/runtime": "7.5.3", - "@types/node": "10.14.12", - "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-bzz": "1.2.11", + "web3-core": "1.2.11", + "web3-eth": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-shh": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-bzz": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", + "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", + "requires": { + "@types/node": "^12.12.6", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", + "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", "requires": { - "@babel/runtime": "7.5.3", - "@types/bn.js": "4.11.5", - "@types/node": "10.14.12", - "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" + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-requestmanager": "1.2.11", + "web3-utils": "1.2.11" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz", + "integrity": "sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A==", "requires": { - "@babel/runtime": "7.5.3", - "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" + "underscore": "1.9.1", + "web3-eth-iban": "1.2.11", + "web3-utils": "1.2.11" } }, "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.5.3", - "eventemitter3": "3.1.0", - "lodash": "4.17.11", - "rxjs": "6.5.2", - "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" + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", + "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-core-promievent": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz", + "integrity": "sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA==", + "requires": { + "eventemitter3": "4.0.4" }, "dependencies": { "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" } } }, + "web3-core-requestmanager": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz", + "integrity": "sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "web3-providers-http": "1.2.11", + "web3-providers-ipc": "1.2.11", + "web3-providers-ws": "1.2.11" + } + }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz", + "integrity": "sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg==", "requires": { - "@babel/runtime": "7.5.3", - "eventemitter3": "3.1.2", - "lodash": "4.17.11" + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } } }, "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.5.3", - "ethereumjs-tx": "1.3.7", - "rxjs": "6.5.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-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" + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz", + "integrity": "sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-accounts": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-eth-ens": "1.2.11", + "web3-eth-iban": "1.2.11", + "web3-eth-personal": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz", + "integrity": "sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg==", "requires": { - "@babel/runtime": "7.5.3", - "ethers": "4.0.32", - "lodash": "4.17.11", - "web3-utils": "1.0.0-beta.55" + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.11" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz", + "integrity": "sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw==", "requires": { - "@babel/runtime": "7.5.3", - "browserify-cipher": "1.0.1", + "crypto-browserify": "3.12.0", "eth-lib": "0.2.8", - "lodash": "4.17.11", - "pbkdf2": "3.0.17", - "randombytes": "2.1.0", - "scrypt.js": "0.3.0", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", "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" + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + }, + "dependencies": { + "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" + } + } } }, "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.5.3", - "@types/bn.js": "4.11.5", - "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" + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", + "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", + "requires": { + "@types/bn.js": "^4.11.5", + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-utils": "1.2.11" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", + "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", "requires": { - "@babel/runtime": "7.5.3", + "content-hash": "^2.5.2", "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" + "underscore": "1.9.1", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-promievent": "1.2.11", + "web3-eth-abi": "1.2.11", + "web3-eth-contract": "1.2.11", + "web3-utils": "1.2.11" } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", + "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", "requires": { - "@babel/runtime": "7.5.3", - "bn.js": "4.11.8", - "web3-utils": "1.0.0-beta.55" + "bn.js": "^4.11.9", + "web3-utils": "1.2.11" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", + "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", "requires": { - "@babel/runtime": "7.5.3", - "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" + "@types/node": "^12.12.6", + "web3-core": "1.2.11", + "web3-core-helpers": "1.2.11", + "web3-core-method": "1.2.11", + "web3-net": "1.2.11", + "web3-utils": "1.2.11" } }, "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.5.3", - "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.5.3", - "@types/node": "10.14.12", - "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.29", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz", + "integrity": "sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg==", + "requires": { + "web3-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-utils": "1.2.11" + } + }, + "web3-providers-http": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz", + "integrity": "sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA==", + "requires": { + "web3-core-helpers": "1.2.11", "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz", + "integrity": "sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11" + } + }, + "web3-providers-ws": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz", + "integrity": "sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg==", + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.11", + "websocket": "^1.0.31" }, "dependencies": { "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" - }, - "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.1.1", - "requires-port": "1.0.0" - } + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" } } }, "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==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz", + "integrity": "sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg==", "requires": { - "@babel/runtime": "7.5.3", - "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-core": "1.2.11", + "web3-core-method": "1.2.11", + "web3-core-subscriptions": "1.2.11", + "web3-net": "1.2.11" } }, "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.5.3", - "@types/bn.js": "4.11.5", - "@types/node": "10.14.12", - "bn.js": "4.11.8", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", + "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", + "requires": { + "bn.js": "^4.11.9", "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", - "lodash": "4.17.11", "number-to-bn": "1.7.0", - "randombytes": "2.1.0", - "utf8": "2.1.1" + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "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" + } + } } }, "webidl-conversions": { @@ -20712,26 +20663,26 @@ "@webassemblyjs/helper-module-context": "1.7.6", "@webassemblyjs/wasm-edit": "1.7.6", "@webassemblyjs/wasm-parser": "1.7.6", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.10.1", - "ajv-keywords": "3.4.1", - "chrome-trace-event": "1.0.2", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.3", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.2.3", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.1", - "node-libs-browser": "2.2.1", - "schema-utils": "0.4.7", - "tapable": "1.1.3", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0" + "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": { @@ -20754,16 +20705,16 @@ "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.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "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" }, "dependencies": { "extend-shallow": { @@ -20771,7 +20722,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -20781,8 +20732,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "expand-brackets": { @@ -20790,13 +20741,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -20804,7 +20755,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -20812,7 +20763,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -20820,7 +20771,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -20828,7 +20779,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -20838,7 +20789,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -20846,7 +20797,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -20856,9 +20807,9 @@ "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.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -20873,14 +20824,14 @@ "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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": { @@ -20888,7 +20839,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -20896,7 +20847,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -20906,10 +20857,10 @@ "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.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -20917,7 +20868,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -20927,7 +20878,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -20935,7 +20886,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -20943,9 +20894,9 @@ "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" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -20953,7 +20904,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -20961,7 +20912,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -20976,19 +20927,19 @@ "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.2", - "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.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "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" } }, "schema-utils": { @@ -20996,8 +20947,8 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "requires": { - "ajv": "6.10.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } } } @@ -21007,10 +20958,10 @@ "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.4.4", - "range-parser": "1.2.1", - "webpack-log": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" } }, "webpack-dev-server": { @@ -21019,34 +20970,34 @@ "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.1.6", - "compression": "1.7.4", - "connect-history-api-fallback": "1.6.0", - "debug": "3.2.6", - "del": "3.0.0", - "express": "4.17.1", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.18.0", - "import-local": "2.0.0", - "internal-ip": "3.0.1", - "ip": "1.1.5", - "killable": "1.0.1", - "loglevel": "1.6.3", - "opn": "5.4.0", - "portfinder": "1.0.20", - "schema-utils": "1.0.0", - "selfsigned": "1.10.4", - "semver": "5.7.0", - "serve-index": "1.9.1", + "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.1", - "supports-color": "5.5.0", - "url": "0.11.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", + "webpack-log": "^2.0.0", "yargs": "12.0.2" }, "dependencies": { @@ -21060,7 +21011,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "decamelize": { @@ -21076,13 +21027,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "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" } }, "find-up": { @@ -21090,7 +21041,7 @@ "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": "^3.0.0" } }, "get-stream": { @@ -21098,7 +21049,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "import-local": { @@ -21106,8 +21057,8 @@ "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" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, "invert-kv": { @@ -21120,7 +21071,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { - "invert-kv": "2.0.0" + "invert-kv": "^2.0.0" } }, "locate-path": { @@ -21128,8 +21079,8 @@ "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-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "mem": { @@ -21137,9 +21088,9 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.1.0", - "p-is-promise": "2.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" } }, "mimic-fn": { @@ -21157,9 +21108,9 @@ "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.3.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "p-limit": { @@ -21167,7 +21118,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -21175,7 +21126,7 @@ "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.2.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -21188,7 +21139,7 @@ "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" + "find-up": "^3.0.0" } }, "supports-color": { @@ -21196,7 +21147,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "yargs": { @@ -21204,18 +21155,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "10.1.0" + "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": { @@ -21223,7 +21174,7 @@ "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" + "camelcase": "^4.1.0" } } } @@ -21233,8 +21184,8 @@ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "requires": { - "ansi-colors": "3.2.4", - "uuid": "3.3.2" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" } }, "webpack-manifest-plugin": { @@ -21242,9 +21193,9 @@ "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": "4.17.11", - "tapable": "1.1.3" + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "tapable": "^1.0.0" } }, "webpack-sources": { @@ -21252,8 +21203,8 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -21264,15 +21215,16 @@ } }, "websocket": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.29.tgz", - "integrity": "sha512-WhU8jKXC8sTh6ocLSqpZRlOKMNYGwUvjA5+XcIgIk/G3JCaDfkZUr0zA19sVSxJ0TEvm0i5IBzr54RZC4vzW7g==", + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.33.tgz", + "integrity": "sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA==", "requires": { - "debug": "2.6.9", - "gulp": "4.0.2", - "nan": "2.14.0", - "typedarray-to-buffer": "3.1.5", - "yaeti": "0.0.6" + "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": { @@ -21280,9 +21232,9 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", "requires": { - "http-parser-js": "0.4.10", - "safe-buffer": "5.1.2", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -21313,9 +21265,9 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "which": { @@ -21323,7 +21275,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -21331,6 +21283,14 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -21341,7 +21301,7 @@ "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-core": "^3.6.3" } }, "workbox-broadcast-cache-update": { @@ -21349,7 +21309,7 @@ "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-core": "^3.6.3" } }, "workbox-build": { @@ -21357,28 +21317,28 @@ "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.8.0", - "fs-extra": "4.0.3", - "glob": "7.1.4", - "joi": "11.4.0", - "lodash.template": "4.4.0", - "pretty-bytes": "4.0.2", - "stringify-object": "3.3.0", - "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" + "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": { @@ -21386,9 +21346,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "requires": { - "graceful-fs": "4.2.0", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } @@ -21398,7 +21358,7 @@ "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-core": "^3.6.3" } }, "workbox-cacheable-response": { @@ -21406,7 +21366,7 @@ "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": "^3.6.3" } }, "workbox-core": { @@ -21419,10 +21379,10 @@ "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-background-sync": "^3.6.3", + "workbox-core": "^3.6.3", + "workbox-routing": "^3.6.3", + "workbox-strategies": "^3.6.3" } }, "workbox-navigation-preload": { @@ -21430,7 +21390,7 @@ "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-core": "^3.6.3" } }, "workbox-precaching": { @@ -21438,7 +21398,7 @@ "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-core": "^3.6.3" } }, "workbox-range-requests": { @@ -21446,7 +21406,7 @@ "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-core": "^3.6.3" } }, "workbox-routing": { @@ -21454,7 +21414,7 @@ "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-core": "^3.6.3" } }, "workbox-strategies": { @@ -21462,7 +21422,7 @@ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.6.3.tgz", "integrity": "sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g==", "requires": { - "workbox-core": "3.6.3" + "workbox-core": "^3.6.3" } }, "workbox-streams": { @@ -21470,7 +21430,7 @@ "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-core": "^3.6.3" } }, "workbox-sw": { @@ -21483,9 +21443,9 @@ "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" + "babel-runtime": "^6.26.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^3.6.3" } }, "worker-farm": { @@ -21493,16 +21453,21 @@ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, + "workerpool": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", + "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==" + }, "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.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -21510,7 +21475,7 @@ "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.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -21518,9 +21483,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -21535,7 +21500,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -21543,9 +21508,9 @@ "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.2.0", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { @@ -21553,18 +21518,18 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-7.1.0.tgz", "integrity": "sha512-Swie2C4fs7CkwlHu1glMePLYJJsWjzhl1vm3ZaLplD0h7OMkZyZ6kLTB/OagiU923bZrPFXuDTeEqaEN4NWG4g==", "requires": { - "async-limiter": "1.0.0" + "async-limiter": "^1.0.0" } }, "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", "requires": { - "global": "4.3.2", - "is-function": "1.0.1", - "parse-headers": "2.0.2", - "xtend": "4.0.2" + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, "xhr-request": { @@ -21572,21 +21537,21 @@ "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.1.1", - "simple-get": "2.8.1", - "timed-out": "4.0.1", - "url-set-query": "1.0.0", - "xhr": "2.5.0" + "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.2", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", - "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", + "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" + "xhr-request": "^1.1.0" } }, "xhr2-cookies": { @@ -21594,7 +21559,7 @@ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", "requires": { - "cookiejar": "2.1.2" + "cookiejar": "^2.1.1" } }, "xml-name-validator": { @@ -21607,11 +21572,6 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.1.1.tgz", "integrity": "sha512-7hew1RPJ1iIuje/Y01bGD/mXokXxegAgVS+e+E0wSi2ILHQkYAH1+JXARwTjZSM4Z4Z+c73aKspEcqj+zPPL/w==" }, - "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", @@ -21642,18 +21602,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.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", + "yargs-parser": "^9.0.2" } }, "yargs-parser": { @@ -21661,7 +21621,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -21670,6 +21630,158 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } + }, + "yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "requires": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "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" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "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" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "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==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.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" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } } } } diff --git a/package.json b/package.json index 21d0785..09d2835 100644 --- a/package.json +++ b/package.json @@ -19,15 +19,16 @@ "react-bootstrap": "1.0.0-beta.5", "react-dom": "16.8.4", "react-scripts": "2.1.3", - "truffle": "5.0.5", + "truffle": "5.1.39", "truffle-flattener": "^1.4.2", - "web3": "1.0.0-beta.55" + "web3": "1.2.11" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "copy-erc721full-to-source": "./node_modules/.bin/truffle-flattener ./node_modules/@openzeppelin/contracts/token/ERC721/ERC721Full.sol > src/contracts/ERC721Full.sol" }, "eslintConfig": { "extends": "react-app" diff --git a/src/abis/Address.json b/src/abis/Address.json deleted file mode 100644 index d75fe88..0000000 --- a/src/abis/Address.json +++ /dev/null @@ -1,37448 +0,0 @@ -{ - "contractName": "Address", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582093b362921bf95d5d37b95b344fda3ce8ff9f9cf13718c7cb42212d92a99cf1890029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582093b362921bf95d5d37b95b344fda3ce8ff9f9cf13718c7cb42212d92a99cf1890029", - "sourceMap": "7788:863:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "7788:863:1:-;;;;;;;;", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.524Z", - "devdoc": { - "details": "Collection of functions related to the address type,", - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/Color.json b/src/abis/Color.json deleted file mode 100644 index 3973cbf..0000000 --- a/src/abis/Color.json +++ /dev/null @@ -1,1945 +0,0 @@ -{ - "contractName": "Color", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x01ffc9a7" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x06fdde03" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x081812fc" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x095ea7b3" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x18160ddd" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x23b872dd" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x2f745c59" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x42842e0e" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x4f6ccce7" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x6352211e" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x70a08231" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x95d89b41" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0xa22cb465" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0xb88d4fde" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "colors", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xbd11f69d" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xc87b56dd" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xe985e9c5" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "signature": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event", - "signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event", - "signature": "0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31" - }, - { - "constant": false, - "inputs": [ - { - "name": "_color", - "type": "string" - } - ], - "name": "mint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0xd85d3d27" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040805190810160405280600581526020017f436f6c6f720000000000000000000000000000000000000000000000000000008152506040805190810160405280600581526020017f434f4c4f520000000000000000000000000000000000000000000000000000008152508181620000bd6301ffc9a77c010000000000000000000000000000000000000000000000000000000002620001b0640100000000026401000000009004565b620000fa6380ac58cd7c010000000000000000000000000000000000000000000000000000000002620001b0640100000000026401000000009004565b6200013763780e9d637c010000000000000000000000000000000000000000000000000000000002620001b0640100000000026401000000009004565b81600990805190602001906200014f929190620002d7565b5080600a908051906020019062000168929190620002d7565b50620001a6635b5e139f7c010000000000000000000000000000000000000000000000000000000002620001b0640100000000026401000000009004565b5050505062000386565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515156200026b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031a57805160ff19168380011785556200034b565b828001600101855582156200034b579182015b828111156200034a5782518255916020019190600101906200032d565b5b5090506200035a91906200035e565b5090565b6200038391905b808211156200037f57600081600090555060010162000365565b5090565b90565b6128dd80620003966000396000f3fe6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461010157806306fdde0314610173578063081812fc14610203578063095ea7b31461027e57806318160ddd146102d957806323b872dd146103045780632f745c591461037f57806342842e0e146103ee5780634f6ccce7146104695780636352211e146104b857806370a082311461053357806395d89b4114610598578063a22cb46514610628578063b88d4fde14610685578063bd11f69d14610797578063c87b56dd1461084b578063d85d3d27146108ff578063e985e9c5146109c7575b600080fd5b34801561010d57600080fd5b506101596004803603602081101561012457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610a50565b604051808215151515815260200191505060405180910390f35b34801561017f57600080fd5b50610188610ab7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c85780820151818401526020810190506101ad565b50505050905090810190601f1680156101f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020f57600080fd5b5061023c6004803603602081101561022657600080fd5b8101908080359060200190929190505050610b59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028a57600080fd5b506102d7600480360360408110156102a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b005b3480156102e557600080fd5b506102ee610e9c565b6040518082815260200191505060405180910390f35b34801561031057600080fd5b5061037d6004803603606081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea9565b005b34801561038b57600080fd5b506103d8600480360360408110156103a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f5d565b6040518082815260200191505060405180910390f35b3480156103fa57600080fd5b506104676004803603606081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611063565b005b34801561047557600080fd5b506104a26004803603602081101561048c57600080fd5b8101908080359060200190929190505050611084565b6040518082815260200191505060405180910390f35b3480156104c457600080fd5b506104f1600480360360208110156104db57600080fd5b810190808035906020019092919050505061114b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105826004803603602081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611258565b6040518082815260200191505060405180910390f35b3480156105a457600080fd5b506105ad611372565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ed5780820151818401526020810190506105d2565b50505050905090810190601f16801561061a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561063457600080fd5b506106836004803603604081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611414565b005b34801561069157600080fd5b50610795600480360360808110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184600183028401116401000000008311171561074357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115b9565b005b3480156107a357600080fd5b506107d0600480360360208110156107ba57600080fd5b8101908080359060200190929190505050611670565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108105780820151818401526020810190506107f5565b50505050905090810190601f16801561083d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085757600080fd5b506108846004803603602081101561086e57600080fd5b810190808035906020019092919050505061172b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108c45780820151818401526020810190506108a9565b50505050905090810190601f1680156108f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090b57600080fd5b506109c56004803603602081101561092257600080fd5b810190808035906020019064010000000081111561093f57600080fd5b82018360208201111561095157600080fd5b8035906020019184600183028401116401000000008311171561097357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611883565b005b3480156109d357600080fd5b50610a36600480360360408110156109ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119dc565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b4f5780601f10610b2457610100808354040283529160200191610b4f565b820191906000526020600020905b815481529060010190602001808311610b3257829003601f168201915b5050505050905090565b6000610b6482611a70565b1515610bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c448261114b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d505750610d4f81336119dc565b5b1515610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610eb33382611ae2565b1515610f4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610f58838383611c1b565b505050565b6000610f6883611258565b82101515611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561105057fe5b9060005260206000200154905092915050565b61107f83838360206040519081016040528060008152506115b9565b505050565b600061108e610e9c565b8210151561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b60078281548110151561113957fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61136b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c3f565b9050919050565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561140a5780601f106113df5761010080835404028352916020019161140a565b820191906000526020600020905b8154815290600101906020018083116113ed57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6115c4848484610ea9565b6115d084848484611c4d565b151561166a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b600c8181548110151561167f57fe5b906000526020600020016000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117235780601f106116f857610100808354040283529160200191611723565b820191906000526020600020905b81548152906001019060200180831161170657829003601f168201915b505050505081565b606061173682611a70565b15156117d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118775780601f1061184c57610100808354040283529160200191611877565b820191906000526020600020905b81548152906001019060200180831161185a57829003601f168201915b50505050509050919050565b600d816040518082805190602001908083835b6020831015156118bb5780518252602082019150602081019050602083039250611896565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151561190857600080fd5b6000600c8290806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906119479291906127e0565b5090506119543382611e70565b6001600d836040518082805190602001908083835b60208310151561198e5780518252602082019150602081019050602083039250611969565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611aed82611a70565b1515611b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000611b928361114b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c0157508373ffffffffffffffffffffffffffffffffffffffff16611be984610b59565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c125750611c1181856119dc565b5b91505092915050565b611c26838383611e91565b611c308382612176565b611c3a828261231a565b505050565b600081600001549050919050565b6000611c6e8473ffffffffffffffffffffffffffffffffffffffff166123e1565b1515611c7d5760019050611e68565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d74578082015181840152602081019050611d59565b50505050905090810190601f168015611da15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611dc357600080fd5b505af1158015611dd7573d6000803e3d6000fd5b505050506040513d6020811015611ded57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b611e7a82826123f4565b611e84828261231a565b611e8d81612610565b5050565b8273ffffffffffffffffffffffffffffffffffffffff16611eb18261114b565b73ffffffffffffffffffffffffffffffffffffffff16141515611f62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561202d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120368161265c565b61207d600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061271c565b6120c4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061273f565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006121ce6001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061275590919063ffffffff16565b905060006006600084815260200190815260200160002054905081811415156122c1576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561223f57fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561229957fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036123139190612860565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6124a281611a70565b151515612517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506125b0600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061273f565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6007805490506008600083815260200190815260200160002081905550600781908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127195760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6127346001826000015461275590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b60008282111515156127cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061282157805160ff191683800117855561284f565b8280016001018555821561284f579182015b8281111561284e578251825591602001919060010190612833565b5b50905061285c919061288c565b5090565b81548183558181111561288757818360005260206000209182019101612886919061288c565b5b505050565b6128ae91905b808211156128aa576000816000905550600101612892565b5090565b9056fea165627a7a7230582013e48e91233ca077bd8978d573c2e6007fc54b640f04b012e9719dcbbad961c40029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461010157806306fdde0314610173578063081812fc14610203578063095ea7b31461027e57806318160ddd146102d957806323b872dd146103045780632f745c591461037f57806342842e0e146103ee5780634f6ccce7146104695780636352211e146104b857806370a082311461053357806395d89b4114610598578063a22cb46514610628578063b88d4fde14610685578063bd11f69d14610797578063c87b56dd1461084b578063d85d3d27146108ff578063e985e9c5146109c7575b600080fd5b34801561010d57600080fd5b506101596004803603602081101561012457600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610a50565b604051808215151515815260200191505060405180910390f35b34801561017f57600080fd5b50610188610ab7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c85780820151818401526020810190506101ad565b50505050905090810190601f1680156101f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020f57600080fd5b5061023c6004803603602081101561022657600080fd5b8101908080359060200190929190505050610b59565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028a57600080fd5b506102d7600480360360408110156102a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b005b3480156102e557600080fd5b506102ee610e9c565b6040518082815260200191505060405180910390f35b34801561031057600080fd5b5061037d6004803603606081101561032757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea9565b005b34801561038b57600080fd5b506103d8600480360360408110156103a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f5d565b6040518082815260200191505060405180910390f35b3480156103fa57600080fd5b506104676004803603606081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611063565b005b34801561047557600080fd5b506104a26004803603602081101561048c57600080fd5b8101908080359060200190929190505050611084565b6040518082815260200191505060405180910390f35b3480156104c457600080fd5b506104f1600480360360208110156104db57600080fd5b810190808035906020019092919050505061114b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105826004803603602081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611258565b6040518082815260200191505060405180910390f35b3480156105a457600080fd5b506105ad611372565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105ed5780820151818401526020810190506105d2565b50505050905090810190601f16801561061a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561063457600080fd5b506106836004803603604081101561064b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611414565b005b34801561069157600080fd5b50610795600480360360808110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184600183028401116401000000008311171561074357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115b9565b005b3480156107a357600080fd5b506107d0600480360360208110156107ba57600080fd5b8101908080359060200190929190505050611670565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108105780820151818401526020810190506107f5565b50505050905090810190601f16801561083d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561085757600080fd5b506108846004803603602081101561086e57600080fd5b810190808035906020019092919050505061172b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108c45780820151818401526020810190506108a9565b50505050905090810190601f1680156108f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561090b57600080fd5b506109c56004803603602081101561092257600080fd5b810190808035906020019064010000000081111561093f57600080fd5b82018360208201111561095157600080fd5b8035906020019184600183028401116401000000008311171561097357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611883565b005b3480156109d357600080fd5b50610a36600480360360408110156109ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119dc565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b4f5780601f10610b2457610100808354040283529160200191610b4f565b820191906000526020600020905b815481529060010190602001808311610b3257829003601f168201915b5050505050905090565b6000610b6482611a70565b1515610bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c448261114b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d505750610d4f81336119dc565b5b1515610dea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610eb33382611ae2565b1515610f4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610f58838383611c1b565b505050565b6000610f6883611258565b82101515611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561105057fe5b9060005260206000200154905092915050565b61107f83838360206040519081016040528060008152506115b9565b505050565b600061108e610e9c565b8210151561112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b60078281548110151561113957fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61136b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c3f565b9050919050565b6060600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561140a5780601f106113df5761010080835404028352916020019161140a565b820191906000526020600020905b8154815290600101906020018083116113ed57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6115c4848484610ea9565b6115d084848484611c4d565b151561166a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b600c8181548110151561167f57fe5b906000526020600020016000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117235780601f106116f857610100808354040283529160200191611723565b820191906000526020600020905b81548152906001019060200180831161170657829003601f168201915b505050505081565b606061173682611a70565b15156117d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118775780601f1061184c57610100808354040283529160200191611877565b820191906000526020600020905b81548152906001019060200180831161185a57829003601f168201915b50505050509050919050565b600d816040518082805190602001908083835b6020831015156118bb5780518252602082019150602081019050602083039250611896565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151561190857600080fd5b6000600c8290806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906119479291906127e0565b5090506119543382611e70565b6001600d836040518082805190602001908083835b60208310151561198e5780518252602082019150602081019050602083039250611969565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff0219169083151502179055505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611aed82611a70565b1515611b87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000611b928361114b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c0157508373ffffffffffffffffffffffffffffffffffffffff16611be984610b59565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c125750611c1181856119dc565b5b91505092915050565b611c26838383611e91565b611c308382612176565b611c3a828261231a565b505050565b600081600001549050919050565b6000611c6e8473ffffffffffffffffffffffffffffffffffffffff166123e1565b1515611c7d5760019050611e68565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611d74578082015181840152602081019050611d59565b50505050905090810190601f168015611da15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611dc357600080fd5b505af1158015611dd7573d6000803e3d6000fd5b505050506040513d6020811015611ded57600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b611e7a82826123f4565b611e84828261231a565b611e8d81612610565b5050565b8273ffffffffffffffffffffffffffffffffffffffff16611eb18261114b565b73ffffffffffffffffffffffffffffffffffffffff16141515611f62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561202d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120368161265c565b61207d600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061271c565b6120c4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061273f565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006121ce6001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061275590919063ffffffff16565b905060006006600084815260200190815260200160002054905081811415156122c1576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561223f57fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561229957fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036123139190612860565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6124a281611a70565b151515612517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506125b0600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061273f565b808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6007805490506008600083815260200190815260200160002081905550600781908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127195760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6127346001826000015461275590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b60008282111515156127cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061282157805160ff191683800117855561284f565b8280016001018555821561284f579182015b8281111561284e578251825591602001919060010190612833565b5b50905061285c919061288c565b5090565b81548183558181111561288757818360005260206000209182019101612886919061288c565b5b505050565b6128ae91905b808211156128aa576000816000905550600101612892565b5090565b9056fea165627a7a7230582013e48e91233ca077bd8978d573c2e6007fc54b640f04b012e9719dcbbad961c40029", - "sourceMap": "52:371:0:-;;;152:55;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:55:0;36885:155:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36962:4;36968:6;10817:40;10484:10;10836:20;;10817:18;;;:40;;;:::i;:::-;13817;13691:10;13836:20;;13817:18;;;:40;;;:::i;:::-;25848:51;25663:10;25867:31;;25848:18;;;:51;;;:::i;:::-;34528:4;34520:5;:12;;;;;;;;;;;;:::i;:::-;;34552:6;34542:7;:16;;;;;;;;;;;;:::i;:::-;;34646:49;34382:10;34665:29;;34646:18;;;:49;;;:::i;:::-;34448:254;;36885:155;;52:371:0;;11541:190:1;11631:10;11616:25;;:11;:25;;;;;11608:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:4;11684:20;:33;11705:11;11684:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11541:190;:::o;52:371:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "52:371:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11014:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15834:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15138:411:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15138:411:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26662:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26662:94:1;;;;;;;;;;;;;;;;;;;;;;;17474:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17474:285:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17474:285:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26280:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26280:229:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26280:229:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18392:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18392:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18392:132:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27094:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27094:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27094:196:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14494:223:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14494:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14068:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14068:207:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14068:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16327:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16327:243:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16327:243:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19229:265:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19229:265:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19229:265:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19229:265:1;;;;;;;;;;;;;;;;;;85:22:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;85:22:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;85:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;85:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35286:202:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35286:202:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;239:181:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:181:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;239:181:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;239:181:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;239:181:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;239:181:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;239:181:0;;;;;;;;;;;;;;;;;;16892:145:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16892:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16892:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:20;:33;11128:11;11107:33;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:40;;11014:133;;;:::o;34807:83::-;34846:13;34878:5;34871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;:::o;15834:200::-;15893:7;15920:16;15928:7;15920;:16::i;:::-;15912:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16003:15;:24;16019:7;16003:24;;;;;;;;;;;;;;;;;;;;;15996:31;;15834:200;;;:::o;15138:411::-;15201:13;15217:16;15225:7;15217;:16::i;:::-;15201:32;;15257:5;15251:11;;:2;:11;;;;15243:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15333:5;15319:19;;:10;:19;;;:58;;;;15342:35;15359:5;15366:10;15342:16;:35::i;:::-;15319:58;15311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15497:2;15470:15;:24;15486:7;15470:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15534:7;15530:2;15514:28;;15523:5;15514:28;;;;;;;;;;;;15138:411;;;:::o;26662:94::-;26706:7;26732:10;:17;;;;26725:24;;26662:94;:::o;17474:285::-;17616:39;17635:10;17647:7;17616:18;:39::i;:::-;17608:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:32;17734:4;17740:2;17744:7;17720:13;:32::i;:::-;17474:285;;;:::o;26280:229::-;26360:7;26395:16;26405:5;26395:9;:16::i;:::-;26387:5;:24;26379:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26476:12;:19;26489:5;26476:19;;;;;;;;;;;;;;;26496:5;26476:26;;;;;;;;;;;;;;;;;;26469:33;;26280:229;;;;:::o;18392:132::-;18478:39;18495:4;18501:2;18505:7;18478:39;;;;;;;;;;;;;:16;:39::i;:::-;18392:132;;;:::o;27094:196::-;27152:7;27187:13;:11;:13::i;:::-;27179:5;:21;27171:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27266:10;27277:5;27266:17;;;;;;;;;;;;;;;;;;27259:24;;27094:196;;;:::o;14494:223::-;14549:7;14568:13;14584:11;:20;14596:7;14584:20;;;;;;;;;;;;;;;;;;;;;14568:36;;14639:1;14622:19;;:5;:19;;;;14614:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14705:5;14698:12;;;14494:223;;;:::o;14068:207::-;14123:7;14167:1;14150:19;;:5;:19;;;;14142:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14234:34;:17;:24;14252:5;14234:24;;;;;;;;;;;;;;;:32;:34::i;:::-;14227:41;;14068:207;;;:::o;34999:87::-;35040:13;35072:7;35065:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;:::o;16327:243::-;16412:10;16406:16;;:2;:16;;;;16398:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16500:8;16463:18;:30;16482:10;16463:30;;;;;;;;;;;;;;;:34;16494:2;16463:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16550:2;16523:40;;16538:10;16523:40;;;16554:8;16523:40;;;;;;;;;;;;;;;;;;;;;;16327:243;;:::o;19229:265::-;19335:31;19348:4;19354:2;19358:7;19335:12;:31::i;:::-;19384:48;19407:4;19413:2;19417:7;19426:5;19384:22;:48::i;:::-;19376:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;;;:::o;85:22:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35286:202:1:-;35344:13;35377:16;35385:7;35377;:16::i;:::-;35369:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35462:10;:19;35473:7;35462:19;;;;;;;;;;;35455:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35286:202;;;:::o;239:181:0:-;297:12;310:6;297:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;297:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;296:21;288:30;;;;;;;;324:8;335:6;347;335:19;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;335:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;324:30;;360:22;366:10;378:3;360:5;:22::i;:::-;411:4;388:12;401:6;388:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;388:20:0;;;;;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;239:181;;:::o;16892:145:1:-;16972:4;16995:18;:25;17014:5;16995:25;;;;;;;;;;;;;;;:35;17021:8;16995:35;;;;;;;;;;;;;;;;;;;;;;;;;16988:42;;16892:145;;;;:::o;19689:152::-;19746:4;19762:13;19778:11;:20;19790:7;19778:20;;;;;;;;;;;;;;;;;;;;;19762:36;;19832:1;19815:19;;:5;:19;;;;19808:26;;;19689:152;;;:::o;20202:329::-;20287:4;20311:16;20319:7;20311;:16::i;:::-;20303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:13;20402:16;20410:7;20402;:16::i;:::-;20386:32;;20447:5;20436:16;;:7;:16;;;:51;;;;20480:7;20456:31;;:20;20468:7;20456:11;:20::i;:::-;:31;;;20436:51;:87;;;;20491:32;20508:5;20515:7;20491:16;:32::i;:::-;20436:87;20428:96;;;20202:329;;;;:::o;27665:239::-;27750:38;27770:4;27776:2;27780:7;27750:19;:38::i;:::-;27799:47;27832:4;27838:7;27799:32;:47::i;:::-;27857:40;27885:2;27889:7;27857:27;:40::i;:::-;27665:239;;;:::o;9739:112::-;9804:7;9830;:14;;;9823:21;;9739:112;;;:::o;23368:347::-;23489:4;23514:15;:2;:13;;;:15::i;:::-;23513:16;23509:58;;;23552:4;23545:11;;;;23509:58;23577:13;23609:2;23593:36;;;23630:10;23642:4;23648:7;23657:5;23593:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23593:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23593:70:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23593:70:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23593:70:1;;;;;;;;;;;;;;;;23577:86;;12310:10;23691:16;;23681:26;;;:6;:26;;;;23673:35;;;23368:347;;;;;;;:::o;28161:196::-;28224:24;28236:2;28240:7;28224:11;:24::i;:::-;28259:40;28287:2;28291:7;28259:27;:40::i;:::-;28310;28342:7;28310:31;:40::i;:::-;28161:196;;:::o;22348:447::-;22461:4;22441:24;;:16;22449:7;22441;:16::i;:::-;:24;;;22433:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22543:1;22529:16;;:2;:16;;;;22521:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22597:23;22612:7;22597:14;:23::i;:::-;22631:35;:17;:23;22649:4;22631:23;;;;;;;;;;;;;;;:33;:35::i;:::-;22676:33;:17;:21;22694:2;22676:21;;;;;;;;;;;;;;;:31;:33::i;:::-;22743:2;22720:11;:20;22732:7;22720:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;22780:7;22776:2;22761:27;;22770:4;22761:27;;;;;;;;;;;;22348:447;;;:::o;30773:1128::-;31035:22;31060:32;31090:1;31060:12;:18;31073:4;31060:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;31035:57;;31102:18;31123:17;:26;31141:7;31123:26;;;;;;;;;;;;31102:47;;31267:14;31253:10;:28;;31249:323;;;31297:19;31319:12;:18;31332:4;31319:18;;;;;;;;;;;;;;;31338:14;31319:34;;;;;;;;;;;;;;;;;;31297:56;;31401:11;31368:12;:18;31381:4;31368:18;;;;;;;;;;;;;;;31387:10;31368:30;;;;;;;;;;;;;;;;;:44;;;;31517:10;31484:17;:30;31502:11;31484:30;;;;;;;;;;;:43;;;;31249:323;;31658:12;:18;31671:4;31658:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;30773:1128;;;;:::o;29619:183::-;29732:12;:16;29745:2;29732:16;;;;;;;;;;;;;;;:23;;;;29703:17;:26;29721:7;29703:26;;;;;;;;;;;:52;;;;29765:12;:16;29778:2;29765:16;;;;;;;;;;;;;;;29787:7;29765:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;29765:30:1;;;;;;;;;;;;;;;;;;;;;;29619:183;;:::o;8236:413::-;8296:4;8499:12;8608:7;8596:20;8588:28;;8641:1;8634:4;:8;8627:15;;;8236:413;;;:::o;20776:327::-;20861:1;20847:16;;:2;:16;;;;20839:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20919:16;20927:7;20919;:16::i;:::-;20918:17;20910:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21002:2;20979:11;:20;20991:7;20979:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;21014:33;:17;:21;21032:2;21014:21;;;;;;;;;;;;;;;:31;:33::i;:::-;21088:7;21084:2;21063:33;;21080:1;21063:33;;;;;;;;;;;;20776:327;;:::o;29997:161::-;30100:10;:17;;;;30073:15;:24;30089:7;30073:24;;;;;;;;;;;:44;;;;30127:10;30143:7;30127:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;30127:24:1;;;;;;;;;;;;;;;;;;;;;;29997:161;:::o;23877:171::-;23976:1;23940:38;;:15;:24;23956:7;23940:24;;;;;;;;;;;;;;;;;;;;;:38;;;;23936:106;;;24029:1;23994:15;:24;24010:7;23994:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23936:106;23877:171;:::o;9952:108::-;10032:21;10051:1;10032:7;:14;;;:18;;:21;;;;:::i;:::-;10015:7;:14;;:38;;;;9952:108;:::o;9857:89::-;9938:1;9920:7;:14;;;:19;;;;;;;;;;;9857:89;:::o;5386:179::-;5444:7;5476:1;5471;:6;;5463:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:9;5538:1;5534;:5;5522:17;;5557:1;5550:8;;;5386:179;;;;:::o;52:371:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.5.0;\n\nimport \"./ERC721Full.sol\";\n\ncontract Color is ERC721Full {\n string[] public colors;\n mapping(string => bool) _colorExists;\n\n constructor() ERC721Full(\"Color\", \"COLOR\") public {\n }\n\n // E.G. color = \"#FFFFFF\"\n function mint(string memory _color) public {\n require(!_colorExists[_color]);\n uint _id = colors.push(_color);\n _mint(msg.sender, _id);\n _colorExists[_color] = true;\n }\n\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/Color.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/Color.sol", - "exportedSymbols": { - "Color": [ - 52 - ] - }, - "id": 53, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:22:0" - }, - { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "file": "./ERC721Full.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 53, - "sourceUnit": 1508, - "src": "24:26:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "ERC721Full", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1507, - "src": "70:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Full_$1507", - "typeString": "contract ERC721Full" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "70:10:0" - } - ], - "contractDependencies": [ - 62, - 163, - 425, - 983, - 1008, - 1341, - 1362, - 1487, - 1507 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 52, - "linearizedBaseContracts": [ - 52, - 1507, - 1487, - 1362, - 1341, - 1008, - 983, - 163, - 425, - 62 - ], - "name": "Color", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 7, - "name": "colors", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "85:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 5, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "85:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 6, - "length": null, - "nodeType": "ArrayTypeName", - "src": "85:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 11, - "name": "_colorExists", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "111:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "typeName": { - "id": 10, - "keyType": { - "id": 8, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "119:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "111:23:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "valueType": { - "id": 9, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "129:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 18, - "nodeType": "Block", - "src": "202:5:0", - "statements": [] - }, - "documentation": null, - "id": 19, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436f6c6f72", - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "177:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f86d44f1b3080fc640c3bc711000ce53504da44b246ae744f9a196485424813c", - "typeString": "literal_string \"Color\"" - }, - "value": "Color" - }, - { - "argumentTypes": null, - "hexValue": "434f4c4f52", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "186:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e108be43dbedebdd6a5e12088e3ff0ee819db892baccf0fc636e26a2da6c252c", - "typeString": "literal_string \"COLOR\"" - }, - "value": "COLOR" - } - ], - "id": 16, - "modifierName": { - "argumentTypes": null, - "id": 13, - "name": "ERC721Full", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1507, - "src": "166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Full_$1507_$", - "typeString": "type(contract ERC721Full)" - } - }, - "nodeType": "ModifierInvocation", - "src": "166:28:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [], - "src": "163:2:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:0:0" - }, - "scope": 52, - "src": "152:55:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 50, - "nodeType": "Block", - "src": "282:138:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 28, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "296:21:0", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 25, - "name": "_colorExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "297:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 27, - "indexExpression": { - "argumentTypes": null, - "id": 26, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "310:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "297:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 24, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1582, - 1583 - ], - "referencedDeclaration": 1582, - "src": "288:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "288:30:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30, - "nodeType": "ExpressionStatement", - "src": "288:30:0" - }, - { - "assignments": [ - 32 - ], - "declarations": [ - { - "constant": false, - "id": 32, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "324:8:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "324:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 37, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 35, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "347:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 33, - "name": "colors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "335:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "335:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", - "typeString": "function (string storage ref) returns (uint256)" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "335:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "324:30:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 39, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1579, - "src": "366:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 40, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "366:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 41, - "name": "_id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "378:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 38, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1148 - ], - "referencedDeclaration": 1148, - "src": "360:5:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 42, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "360:22:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 43, - "nodeType": "ExpressionStatement", - "src": "360:22:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 44, - "name": "_colorExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "388:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 46, - "indexExpression": { - "argumentTypes": null, - "id": 45, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "401:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "388:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "411:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "388:27:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 49, - "nodeType": "ExpressionStatement", - "src": "388:27:0" - } - ] - }, - "documentation": null, - "id": 51, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "name": "_color", - "nodeType": "VariableDeclaration", - "scope": 51, - "src": "253:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:22:0" - }, - "returnParameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [], - "src": "282:0:0" - }, - "scope": 52, - "src": "239:181:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 53, - "src": "52:371:0" - } - ], - "src": "0:424:0" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/Color.sol", - "exportedSymbols": { - "Color": [ - 52 - ] - }, - "id": 53, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:22:0" - }, - { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "file": "./ERC721Full.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 53, - "sourceUnit": 1508, - "src": "24:26:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "ERC721Full", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1507, - "src": "70:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Full_$1507", - "typeString": "contract ERC721Full" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "70:10:0" - } - ], - "contractDependencies": [ - 62, - 163, - 425, - 983, - 1008, - 1341, - 1362, - 1487, - 1507 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 52, - "linearizedBaseContracts": [ - 52, - 1507, - 1487, - 1362, - 1341, - 1008, - 983, - 163, - 425, - 62 - ], - "name": "Color", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 7, - "name": "colors", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "85:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 5, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "85:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 6, - "length": null, - "nodeType": "ArrayTypeName", - "src": "85:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 11, - "name": "_colorExists", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "111:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "typeName": { - "id": 10, - "keyType": { - "id": 8, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "119:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "111:23:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "valueType": { - "id": 9, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "129:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 18, - "nodeType": "Block", - "src": "202:5:0", - "statements": [] - }, - "documentation": null, - "id": 19, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436f6c6f72", - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "177:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f86d44f1b3080fc640c3bc711000ce53504da44b246ae744f9a196485424813c", - "typeString": "literal_string \"Color\"" - }, - "value": "Color" - }, - { - "argumentTypes": null, - "hexValue": "434f4c4f52", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "186:7:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e108be43dbedebdd6a5e12088e3ff0ee819db892baccf0fc636e26a2da6c252c", - "typeString": "literal_string \"COLOR\"" - }, - "value": "COLOR" - } - ], - "id": 16, - "modifierName": { - "argumentTypes": null, - "id": 13, - "name": "ERC721Full", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1507, - "src": "166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Full_$1507_$", - "typeString": "type(contract ERC721Full)" - } - }, - "nodeType": "ModifierInvocation", - "src": "166:28:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12, - "nodeType": "ParameterList", - "parameters": [], - "src": "163:2:0" - }, - "returnParameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "202:0:0" - }, - "scope": 52, - "src": "152:55:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 50, - "nodeType": "Block", - "src": "282:138:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 28, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "296:21:0", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 25, - "name": "_colorExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "297:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 27, - "indexExpression": { - "argumentTypes": null, - "id": 26, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "310:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "297:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 24, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1582, - 1583 - ], - "referencedDeclaration": 1582, - "src": "288:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "288:30:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30, - "nodeType": "ExpressionStatement", - "src": "288:30:0" - }, - { - "assignments": [ - 32 - ], - "declarations": [ - { - "constant": false, - "id": 32, - "name": "_id", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "324:8:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "324:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 37, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 35, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "347:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 33, - "name": "colors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "335:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "335:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", - "typeString": "function (string storage ref) returns (uint256)" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "335:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "324:30:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 39, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1579, - "src": "366:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 40, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "366:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 41, - "name": "_id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "378:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 38, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1148 - ], - "referencedDeclaration": 1148, - "src": "360:5:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 42, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "360:22:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 43, - "nodeType": "ExpressionStatement", - "src": "360:22:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 44, - "name": "_colorExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "388:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 46, - "indexExpression": { - "argumentTypes": null, - "id": 45, - "name": "_color", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "401:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "388:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 47, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "411:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "388:27:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 49, - "nodeType": "ExpressionStatement", - "src": "388:27:0" - } - ] - }, - "documentation": null, - "id": 51, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 22, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "name": "_color", - "nodeType": "VariableDeclaration", - "scope": 51, - "src": "253:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 20, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:22:0" - }, - "returnParameters": { - "id": 23, - "nodeType": "ParameterList", - "parameters": [], - "src": "282:0:0" - }, - "scope": 52, - "src": "239:181:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 53, - "src": "52:371:0" - } - ], - "src": "0:424:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": { - "5777": { - "events": {}, - "links": {}, - "address": "0x7629eba1fBb260E6Da2BDE3a9e485A137126a700", - "transactionHash": "0xb47a33e6f4784164114f2936503f8fcd395dbd3a3919115f9ea993a70d256918" - } - }, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:46:34.743Z", - "devdoc": { - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", - "params": { - "to": "address to be approved for the given token ID", - "tokenId": "uint256 ID of the token to be approved" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "owner": "address to query the balance of" - }, - "return": "uint256 representing the amount owned by the passed address" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", - "params": { - "tokenId": "uint256 ID of the token to query the approval of" - }, - "return": "address currently approved for the given token ID" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner.", - "params": { - "operator": "operator address which you want to query the approval of", - "owner": "owner address which you want to query the approval of" - }, - "return": "bool whether the given operator is approved by the given owner" - }, - "name()": { - "details": "Gets the token name.", - "return": "string representing the token name" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID.", - "params": { - "tokenId": "uint256 ID of the token to query the owner of" - }, - "return": "address currently marked as the owner of the given token ID" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "_data": "bytes data to send along with a safe transfer check", - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", - "params": { - "approved": "representing the status of the approval to be set", - "to": "operator address to set the approval" - } - }, - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - }, - "symbol()": { - "details": "Gets the token symbol.", - "return": "string representing the token symbol" - }, - "tokenByIndex(uint256)": { - "details": "Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.", - "params": { - "index": "uint256 representing the index to be accessed of the tokens list" - }, - "return": "uint256 token ID at the given index of the tokens list" - }, - "tokenOfOwnerByIndex(address,uint256)": { - "details": "Gets the token ID at a given index of the tokens list of the requested owner.", - "params": { - "index": "uint256 representing the index to be accessed of the requested tokens list", - "owner": "address owning the tokens list to be accessed" - }, - "return": "uint256 token ID at the given index of the tokens list owned by the requested address" - }, - "tokenURI(uint256)": { - "details": "Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.", - "params": { - "tokenId": "uint256 ID of the token to query" - } - }, - "totalSupply()": { - "details": "Gets the total amount of tokens stored by the contract.", - "return": "uint256 representing the total amount of tokens" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/Counters.json b/src/abis/Counters.json deleted file mode 100644 index 8dc6f02..0000000 --- a/src/abis/Counters.json +++ /dev/null @@ -1,37450 +0,0 @@ -{ - "contractName": "Counters", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820f19ec424b82475ebe631f2854b885dcc95da62364ec8658a04f38c5c0641a8ab0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820f19ec424b82475ebe631f2854b885dcc95da62364ec8658a04f38c5c0641a8ab0029", - "sourceMap": "9303:759:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "9303:759:1:-;;;;;;;;", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.546Z", - "devdoc": { - "author": "Matt Condon (@shrugs)", - "details": "Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. * Include with `using Counters for Counters.Counter;` Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never directly accessed.", - "methods": {}, - "title": "Counters" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/ERC165.json b/src/abis/ERC165.json deleted file mode 100644 index fdc7a50..0000000 --- a/src/abis/ERC165.json +++ /dev/null @@ -1,37478 +0,0 @@ -{ - "contractName": "ERC165", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.572Z", - "devdoc": { - "details": "Implementation of the `IERC165` interface. * Contracts may inherit from this and call `_registerInterface` to declare their support of an interface.", - "methods": { - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/ERC721.json b/src/abis/ERC721.json deleted file mode 100644 index 049fb2f..0000000 --- a/src/abis/ERC721.json +++ /dev/null @@ -1,37799 +0,0 @@ -{ - "contractName": "ERC721", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061004c6301ffc9a77c01000000000000000000000000000000000000000000000000000000000261008c640100000000026401000000009004565b6100876380ac58cd7c01000000000000000000000000000000000000000000000000000000000261008c640100000000026401000000009004565b6101b2565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515610146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117d9806101c16000396000f3fe6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100a9578063081812fc1461011b578063095ea7b31461019657806323b872dd146101f157806342842e0e1461026c5780636352211e146102e757806370a0823114610362578063a22cb465146103c7578063b88d4fde14610424578063e985e9c514610536575b600080fd5b3480156100b557600080fd5b50610101600480360360208110156100cc57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506105bf565b604051808215151515815260200191505060405180910390f35b34801561012757600080fd5b506101546004803603602081101561013e57600080fd5b8101908080359060200190929190505050610626565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a257600080fd5b506101ef600480360360408110156101b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610706565b005b3480156101fd57600080fd5b5061026a6004803603606081101561021457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610969565b005b34801561027857600080fd5b506102e56004803603606081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a1d565b005b3480156102f357600080fd5b506103206004803603602081101561030a57600080fd5b8101908080359060200190929190505050610a3e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036e57600080fd5b506103b16004803603602081101561038557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4b565b6040518082815260200191505060405180910390f35b3480156103d357600080fd5b50610422600480360360408110156103ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610c65565b005b34801561043057600080fd5b506105346004803603608081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0a565b005b34801561054257600080fd5b506105a56004803603604081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec1565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600061063182610f55565b15156106cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061071182610a3e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061081d575061081c8133610ec1565b5b15156108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6109733382610fc7565b1515610a0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610a18838383611100565b505050565b610a398383836020604051908101604052806000815250610e0a565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c5e600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206113e5565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b610e15848484610969565b610e21848484846113f3565b1515610ebb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610fd282610f55565b151561106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061107783610a3e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806110e657508373ffffffffffffffffffffffffffffffffffffffff166110ce84610626565b73ffffffffffffffffffffffffffffffffffffffff16145b806110f757506110f68185610ec1565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661112082610a3e565b73ffffffffffffffffffffffffffffffffffffffff161415156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6112a581611616565b6112ec600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206116d6565b611333600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206116f9565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081600001549050919050565b60006114148473ffffffffffffffffffffffffffffffffffffffff1661170f565b1515611423576001905061160e565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561151a5780820151818401526020810190506114ff565b50505050905090810190601f1680156115475780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116d35760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6116ee6001826000015461172290919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600080823b905060008111915050919050565b600082821115151561179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b60008284039050809150509291505056fea165627a7a723058207d8eeadaeb55adb4f48b25f2b5e2008d88eeed8712d39349622086caa1734e2b0029", - "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100a9578063081812fc1461011b578063095ea7b31461019657806323b872dd146101f157806342842e0e1461026c5780636352211e146102e757806370a0823114610362578063a22cb465146103c7578063b88d4fde14610424578063e985e9c514610536575b600080fd5b3480156100b557600080fd5b50610101600480360360208110156100cc57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506105bf565b604051808215151515815260200191505060405180910390f35b34801561012757600080fd5b506101546004803603602081101561013e57600080fd5b8101908080359060200190929190505050610626565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a257600080fd5b506101ef600480360360408110156101b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610706565b005b3480156101fd57600080fd5b5061026a6004803603606081101561021457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610969565b005b34801561027857600080fd5b506102e56004803603606081101561028f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a1d565b005b3480156102f357600080fd5b506103206004803603602081101561030a57600080fd5b8101908080359060200190929190505050610a3e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036e57600080fd5b506103b16004803603602081101561038557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4b565b6040518082815260200191505060405180910390f35b3480156103d357600080fd5b50610422600480360360408110156103ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610c65565b005b34801561043057600080fd5b506105346004803603608081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156104ae57600080fd5b8201836020820111156104c057600080fd5b803590602001918460018302840111640100000000831117156104e257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0a565b005b34801561054257600080fd5b506105a56004803603604081101561055957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec1565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600061063182610f55565b15156106cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061071182610a3e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061081d575061081c8133610ec1565b5b15156108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6109733382610fc7565b1515610a0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610a18838383611100565b505050565b610a398383836020604051908101604052806000815250610e0a565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c17576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c5e600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206113e5565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b610e15848484610969565b610e21848484846113f3565b1515610ebb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610fd282610f55565b151561106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061107783610a3e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806110e657508373ffffffffffffffffffffffffffffffffffffffff166110ce84610626565b73ffffffffffffffffffffffffffffffffffffffff16145b806110f757506110f68185610ec1565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661112082610a3e565b73ffffffffffffffffffffffffffffffffffffffff161415156111d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561129c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6112a581611616565b6112ec600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206116d6565b611333600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206116f9565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081600001549050919050565b60006114148473ffffffffffffffffffffffffffffffffffffffff1661170f565b1515611423576001905061160e565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561151a5780820151818401526020810190506114ff565b50505050905090810190601f1680156115475780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561156957600080fd5b505af115801561157d573d6000803e3d6000fd5b505050506040513d602081101561159357600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116d35760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6116ee6001826000015461172290919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600080823b905060008111915050919050565b600082821115151561179c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b60008284039050809150509291505056fea165627a7a723058207d8eeadaeb55adb4f48b25f2b5e2008d88eeed8712d39349622086caa1734e2b0029", - "sourceMap": "11949:12101:1:-;;;13708:156;8:9:-1;5:2;;;30:1;27;20:12;5:2;13708:156:1;10817:40;10484:10;10836:20;;10817:18;;;:40;;;:::i;:::-;13817;13691:10;13836:20;;13817:18;;;:40;;;:::i;:::-;11949:12101;;11541:190;11631:10;11616:25;;:11;:25;;;;;11608:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:4;11684:20;:33;11705:11;11684:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11541:190;:::o;11949:12101::-;;;;;;;", - "deployedSourceMap": "11949:12101:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11014:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15834:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15138:411:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15138:411:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17474:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17474:285:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17474:285:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18392:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18392:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18392:132:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14494:223:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14494:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14068:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14068:207:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14068:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16327:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16327:243:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16327:243:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19229:265:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19229:265:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19229:265:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19229:265:1;;;;;;;;;;;;;;;;;;16892:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16892:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16892:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:20;:33;11128:11;11107:33;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:40;;11014:133;;;:::o;15834:200::-;15893:7;15920:16;15928:7;15920;:16::i;:::-;15912:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16003:15;:24;16019:7;16003:24;;;;;;;;;;;;;;;;;;;;;15996:31;;15834:200;;;:::o;15138:411::-;15201:13;15217:16;15225:7;15217;:16::i;:::-;15201:32;;15257:5;15251:11;;:2;:11;;;;15243:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15333:5;15319:19;;:10;:19;;;:58;;;;15342:35;15359:5;15366:10;15342:16;:35::i;:::-;15319:58;15311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15497:2;15470:15;:24;15486:7;15470:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15534:7;15530:2;15514:28;;15523:5;15514:28;;;;;;;;;;;;15138:411;;;:::o;17474:285::-;17616:39;17635:10;17647:7;17616:18;:39::i;:::-;17608:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:32;17734:4;17740:2;17744:7;17720:13;:32::i;:::-;17474:285;;;:::o;18392:132::-;18478:39;18495:4;18501:2;18505:7;18478:39;;;;;;;;;;;;;:16;:39::i;:::-;18392:132;;;:::o;14494:223::-;14549:7;14568:13;14584:11;:20;14596:7;14584:20;;;;;;;;;;;;;;;;;;;;;14568:36;;14639:1;14622:19;;:5;:19;;;;14614:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14705:5;14698:12;;;14494:223;;;:::o;14068:207::-;14123:7;14167:1;14150:19;;:5;:19;;;;14142:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14234:34;:17;:24;14252:5;14234:24;;;;;;;;;;;;;;;:32;:34::i;:::-;14227:41;;14068:207;;;:::o;16327:243::-;16412:10;16406:16;;:2;:16;;;;16398:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16500:8;16463:18;:30;16482:10;16463:30;;;;;;;;;;;;;;;:34;16494:2;16463:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16550:2;16523:40;;16538:10;16523:40;;;16554:8;16523:40;;;;;;;;;;;;;;;;;;;;;;16327:243;;:::o;19229:265::-;19335:31;19348:4;19354:2;19358:7;19335:12;:31::i;:::-;19384:48;19407:4;19413:2;19417:7;19426:5;19384:22;:48::i;:::-;19376:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;;;:::o;16892:145::-;16972:4;16995:18;:25;17014:5;16995:25;;;;;;;;;;;;;;;:35;17021:8;16995:35;;;;;;;;;;;;;;;;;;;;;;;;;16988:42;;16892:145;;;;:::o;19689:152::-;19746:4;19762:13;19778:11;:20;19790:7;19778:20;;;;;;;;;;;;;;;;;;;;;19762:36;;19832:1;19815:19;;:5;:19;;;;19808:26;;;19689:152;;;:::o;20202:329::-;20287:4;20311:16;20319:7;20311;:16::i;:::-;20303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:13;20402:16;20410:7;20402;:16::i;:::-;20386:32;;20447:5;20436:16;;:7;:16;;;:51;;;;20480:7;20456:31;;:20;20468:7;20456:11;:20::i;:::-;:31;;;20436:51;:87;;;;20491:32;20508:5;20515:7;20491:16;:32::i;:::-;20436:87;20428:96;;;20202:329;;;;:::o;22348:447::-;22461:4;22441:24;;:16;22449:7;22441;:16::i;:::-;:24;;;22433:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22543:1;22529:16;;:2;:16;;;;22521:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22597:23;22612:7;22597:14;:23::i;:::-;22631:35;:17;:23;22649:4;22631:23;;;;;;;;;;;;;;;:33;:35::i;:::-;22676:33;:17;:21;22694:2;22676:21;;;;;;;;;;;;;;;:31;:33::i;:::-;22743:2;22720:11;:20;22732:7;22720:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;22780:7;22776:2;22761:27;;22770:4;22761:27;;;;;;;;;;;;22348:447;;;:::o;9739:112::-;9804:7;9830;:14;;;9823:21;;9739:112;;;:::o;23368:347::-;23489:4;23514:15;:2;:13;;;:15::i;:::-;23513:16;23509:58;;;23552:4;23545:11;;;;23509:58;23577:13;23609:2;23593:36;;;23630:10;23642:4;23648:7;23657:5;23593:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23593:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23593:70:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23593:70:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23593:70:1;;;;;;;;;;;;;;;;23577:86;;12310:10;23691:16;;23681:26;;;:6;:26;;;;23673:35;;;23368:347;;;;;;;:::o;23877:171::-;23976:1;23940:38;;:15;:24;23956:7;23940:24;;;;;;;;;;;;;;;;;;;;;:38;;;;23936:106;;;24029:1;23994:15;:24;24010:7;23994:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23936:106;23877:171;:::o;9952:108::-;10032:21;10051:1;10032:7;:14;;;:18;;:21;;;;:::i;:::-;10015:7;:14;;:38;;;;9952:108;:::o;9857:89::-;9938:1;9920:7;:14;;;:19;;;;;;;;;;;9857:89;:::o;8236:413::-;8296:4;8499:12;8608:7;8596:20;8588:28;;8641:1;8634:4;:8;8627:15;;;8236:413;;;:::o;5386:179::-;5444:7;5476:1;5471;:6;;5463:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:9;5538:1;5534;:5;5522:17;;5557:1;5550:8;;;5386:179;;;;:::o", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.603Z", - "devdoc": { - "details": "see https://eips.ethereum.org/EIPS/eip-721", - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", - "params": { - "to": "address to be approved for the given token ID", - "tokenId": "uint256 ID of the token to be approved" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "owner": "address to query the balance of" - }, - "return": "uint256 representing the amount owned by the passed address" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", - "params": { - "tokenId": "uint256 ID of the token to query the approval of" - }, - "return": "address currently approved for the given token ID" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner.", - "params": { - "operator": "operator address which you want to query the approval of", - "owner": "owner address which you want to query the approval of" - }, - "return": "bool whether the given operator is approved by the given owner" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID.", - "params": { - "tokenId": "uint256 ID of the token to query the owner of" - }, - "return": "address currently marked as the owner of the given token ID" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "_data": "bytes data to send along with a safe transfer check", - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", - "params": { - "approved": "representing the status of the approval to be set", - "to": "operator address to set the approval" - } - }, - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - } - }, - "title": "ERC721 Non-Fungible Token Standard basic implementation" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/ERC721Enumerable.json b/src/abis/ERC721Enumerable.json deleted file mode 100644 index ead537f..0000000 --- a/src/abis/ERC721Enumerable.json +++ /dev/null @@ -1,37877 +0,0 @@ -{ - "contractName": "ERC721Enumerable", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200004f6301ffc9a77c010000000000000000000000000000000000000000000000000000000002620000cf640100000000026401000000009004565b6200008c6380ac58cd7c010000000000000000000000000000000000000000000000000000000002620000cf640100000000026401000000009004565b620000c963780e9d637c010000000000000000000000000000000000000000000000000000000002620000cf640100000000026401000000009004565b620001f6565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515156200018a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611d9d80620002066000396000f3fe6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca578063081812fc1461013c578063095ea7b3146101b757806318160ddd1461021257806323b872dd1461023d5780632f745c59146102b857806342842e0e146103275780634f6ccce7146103a25780636352211e146103f157806370a082311461046c578063a22cb465146104d1578063b88d4fde1461052e578063e985e9c514610640575b600080fd5b3480156100d657600080fd5b50610122600480360360208110156100ed57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106c9565b604051808215151515815260200191505060405180910390f35b34801561014857600080fd5b506101756004803603602081101561015f57600080fd5b8101908080359060200190929190505050610730565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c357600080fd5b50610210600480360360408110156101da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610810565b005b34801561021e57600080fd5b50610227610a73565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b506102b66004803603606081101561026057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a80565b005b3480156102c457600080fd5b50610311600480360360408110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b6040518082815260200191505060405180910390f35b34801561033357600080fd5b506103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3a565b005b3480156103ae57600080fd5b506103db600480360360208110156103c557600080fd5b8101908080359060200190929190505050610c5b565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b5061042a6004803603602081101561041457600080fd5b8101908080359060200190929190505050610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2f565b6040518082815260200191505060405180910390f35b3480156104dd57600080fd5b5061052c600480360360408110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f49565b005b34801561053a57600080fd5b5061063e6004803603608081101561055157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105b857600080fd5b8201836020820111156105ca57600080fd5b803590602001918460018302840111640100000000831117156105ec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ee565b005b34801561064c57600080fd5b506106af6004803603604081101561066357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a5565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600061073b82611239565b15156107d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061081b82610d22565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610927575061092681336111a5565b5b15156109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610a8a33826112ab565b1515610b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610b2f8383836113e4565b505050565b6000610b3f83610e2f565b82101515610bdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610c2757fe5b9060005260206000200154905092915050565b610c5683838360206040519081016040528060008152506110ee565b505050565b6000610c65610a73565b82101515610d01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515610d1057fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610f42600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611408565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610fed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110f9848484610a80565b61110584848484611416565b151561119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b60006112b682611239565b1515611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061135b83610d22565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806113ca57508373ffffffffffffffffffffffffffffffffffffffff166113b284610730565b73ffffffffffffffffffffffffffffffffffffffff16145b806113db57506113da81856111a5565b5b91505092915050565b6113ef838383611639565b6113f9838261191e565b6114038282611ac2565b505050565b600081600001549050919050565b60006114378473ffffffffffffffffffffffffffffffffffffffff16611b89565b15156114465760019050611631565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153d578082015181840152602081019050611522565b50505050905090810190601f16801561156a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661165982610d22565b73ffffffffffffffffffffffffffffffffffffffff1614151561170a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6117de81611b9c565b611825600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c5c565b61186c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c7f565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006119766001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611c9590919063ffffffff16565b90506000600660008481526020019081526020016000205490508181141515611a69576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156119e757fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611a4157fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611abb9190611d20565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c595760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b611c7460018260000154611c9590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b6000828211151515611d0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b815481835581811115611d4757818360005260206000209182019101611d469190611d4c565b5b505050565b611d6e91905b80821115611d6a576000816000905550600101611d52565b5090565b9056fea165627a7a7230582049f219b8b1ed801a4e3125a47016fb7dc5811e29afdc720bb05e5b00e4664dfb0029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca578063081812fc1461013c578063095ea7b3146101b757806318160ddd1461021257806323b872dd1461023d5780632f745c59146102b857806342842e0e146103275780634f6ccce7146103a25780636352211e146103f157806370a082311461046c578063a22cb465146104d1578063b88d4fde1461052e578063e985e9c514610640575b600080fd5b3480156100d657600080fd5b50610122600480360360208110156100ed57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506106c9565b604051808215151515815260200191505060405180910390f35b34801561014857600080fd5b506101756004803603602081101561015f57600080fd5b8101908080359060200190929190505050610730565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c357600080fd5b50610210600480360360408110156101da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610810565b005b34801561021e57600080fd5b50610227610a73565b6040518082815260200191505060405180910390f35b34801561024957600080fd5b506102b66004803603606081101561026057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a80565b005b3480156102c457600080fd5b50610311600480360360408110156102db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b34565b6040518082815260200191505060405180910390f35b34801561033357600080fd5b506103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c3a565b005b3480156103ae57600080fd5b506103db600480360360208110156103c557600080fd5b8101908080359060200190929190505050610c5b565b6040518082815260200191505060405180910390f35b3480156103fd57600080fd5b5061042a6004803603602081101561041457600080fd5b8101908080359060200190929190505050610d22565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047857600080fd5b506104bb6004803603602081101561048f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e2f565b6040518082815260200191505060405180910390f35b3480156104dd57600080fd5b5061052c600480360360408110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f49565b005b34801561053a57600080fd5b5061063e6004803603608081101561055157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105b857600080fd5b8201836020820111156105ca57600080fd5b803590602001918460018302840111640100000000831117156105ec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110ee565b005b34801561064c57600080fd5b506106af6004803603604081101561066357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a5565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600061073b82611239565b15156107d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061081b82610d22565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610927575061092681336111a5565b5b15156109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610a8a33826112ab565b1515610b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610b2f8383836113e4565b505050565b6000610b3f83610e2f565b82101515610bdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610c2757fe5b9060005260206000200154905092915050565b610c5683838360206040519081016040528060008152506110ee565b505050565b6000610c65610a73565b82101515610d01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515610d1057fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e26576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610efb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610f42600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611408565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610fed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6110f9848484610a80565b61110584848484611416565b151561119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b60006112b682611239565b1515611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061135b83610d22565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806113ca57508373ffffffffffffffffffffffffffffffffffffffff166113b284610730565b73ffffffffffffffffffffffffffffffffffffffff16145b806113db57506113da81856111a5565b5b91505092915050565b6113ef838383611639565b6113f9838261191e565b6114038282611ac2565b505050565b600081600001549050919050565b60006114378473ffffffffffffffffffffffffffffffffffffffff16611b89565b15156114465760019050611631565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561153d578082015181840152602081019050611522565b50505050905090810190601f16801561156a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561158c57600080fd5b505af11580156115a0573d6000803e3d6000fd5b505050506040513d60208110156115b657600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661165982610d22565b73ffffffffffffffffffffffffffffffffffffffff1614151561170a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6117de81611b9c565b611825600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c5c565b61186c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c7f565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006119766001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611c9590919063ffffffff16565b90506000600660008481526020019081526020016000205490508181141515611a69576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156119e757fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611a4157fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611abb9190611d20565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c595760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b611c7460018260000154611c9590919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b6000828211151515611d0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b815481835581811115611d4757818360005260206000209182019101611d469190611d4c565b5b505050565b611d6e91905b80821115611d6a576000816000905550600101611d52565b5090565b9056fea165627a7a7230582049f219b8b1ed801a4e3125a47016fb7dc5811e29afdc720bb05e5b00e4664dfb0029", - "sourceMap": "24794:8461:1:-;;;25730:176;8:9:-1;5:2;;;30:1;27;20:12;5:2;25730:176:1;10817:40;10484:10;10836:20;;10817:18;;;:40;;;:::i;:::-;13817;13691:10;13836:20;;13817:18;;;:40;;;:::i;:::-;25848:51;25663:10;25867:31;;25848:18;;;:51;;;:::i;:::-;24794:8461;;11541:190;11631:10;11616:25;;:11;:25;;;;;11608:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:4;11684:20;:33;11705:11;11684:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11541:190;:::o;24794:8461::-;;;;;;;", - "deployedSourceMap": "24794:8461:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11014:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15834:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15138:411:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15138:411:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26662:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26662:94:1;;;;;;;;;;;;;;;;;;;;;;;17474:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17474:285:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17474:285:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26280:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26280:229:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26280:229:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18392:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18392:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18392:132:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27094:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27094:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27094:196:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14494:223:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14494:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14068:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14068:207:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14068:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16327:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16327:243:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16327:243:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19229:265:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19229:265:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19229:265:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19229:265:1;;;;;;;;;;;;;;;;;;16892:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16892:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16892:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:20;:33;11128:11;11107:33;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:40;;11014:133;;;:::o;15834:200::-;15893:7;15920:16;15928:7;15920;:16::i;:::-;15912:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16003:15;:24;16019:7;16003:24;;;;;;;;;;;;;;;;;;;;;15996:31;;15834:200;;;:::o;15138:411::-;15201:13;15217:16;15225:7;15217;:16::i;:::-;15201:32;;15257:5;15251:11;;:2;:11;;;;15243:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15333:5;15319:19;;:10;:19;;;:58;;;;15342:35;15359:5;15366:10;15342:16;:35::i;:::-;15319:58;15311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15497:2;15470:15;:24;15486:7;15470:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15534:7;15530:2;15514:28;;15523:5;15514:28;;;;;;;;;;;;15138:411;;;:::o;26662:94::-;26706:7;26732:10;:17;;;;26725:24;;26662:94;:::o;17474:285::-;17616:39;17635:10;17647:7;17616:18;:39::i;:::-;17608:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:32;17734:4;17740:2;17744:7;17720:13;:32::i;:::-;17474:285;;;:::o;26280:229::-;26360:7;26395:16;26405:5;26395:9;:16::i;:::-;26387:5;:24;26379:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26476:12;:19;26489:5;26476:19;;;;;;;;;;;;;;;26496:5;26476:26;;;;;;;;;;;;;;;;;;26469:33;;26280:229;;;;:::o;18392:132::-;18478:39;18495:4;18501:2;18505:7;18478:39;;;;;;;;;;;;;:16;:39::i;:::-;18392:132;;;:::o;27094:196::-;27152:7;27187:13;:11;:13::i;:::-;27179:5;:21;27171:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27266:10;27277:5;27266:17;;;;;;;;;;;;;;;;;;27259:24;;27094:196;;;:::o;14494:223::-;14549:7;14568:13;14584:11;:20;14596:7;14584:20;;;;;;;;;;;;;;;;;;;;;14568:36;;14639:1;14622:19;;:5;:19;;;;14614:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14705:5;14698:12;;;14494:223;;;:::o;14068:207::-;14123:7;14167:1;14150:19;;:5;:19;;;;14142:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14234:34;:17;:24;14252:5;14234:24;;;;;;;;;;;;;;;:32;:34::i;:::-;14227:41;;14068:207;;;:::o;16327:243::-;16412:10;16406:16;;:2;:16;;;;16398:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16500:8;16463:18;:30;16482:10;16463:30;;;;;;;;;;;;;;;:34;16494:2;16463:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16550:2;16523:40;;16538:10;16523:40;;;16554:8;16523:40;;;;;;;;;;;;;;;;;;;;;;16327:243;;:::o;19229:265::-;19335:31;19348:4;19354:2;19358:7;19335:12;:31::i;:::-;19384:48;19407:4;19413:2;19417:7;19426:5;19384:22;:48::i;:::-;19376:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;;;:::o;16892:145::-;16972:4;16995:18;:25;17014:5;16995:25;;;;;;;;;;;;;;;:35;17021:8;16995:35;;;;;;;;;;;;;;;;;;;;;;;;;16988:42;;16892:145;;;;:::o;19689:152::-;19746:4;19762:13;19778:11;:20;19790:7;19778:20;;;;;;;;;;;;;;;;;;;;;19762:36;;19832:1;19815:19;;:5;:19;;;;19808:26;;;19689:152;;;:::o;20202:329::-;20287:4;20311:16;20319:7;20311;:16::i;:::-;20303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:13;20402:16;20410:7;20402;:16::i;:::-;20386:32;;20447:5;20436:16;;:7;:16;;;:51;;;;20480:7;20456:31;;:20;20468:7;20456:11;:20::i;:::-;:31;;;20436:51;:87;;;;20491:32;20508:5;20515:7;20491:16;:32::i;:::-;20436:87;20428:96;;;20202:329;;;;:::o;27665:239::-;27750:38;27770:4;27776:2;27780:7;27750:19;:38::i;:::-;27799:47;27832:4;27838:7;27799:32;:47::i;:::-;27857:40;27885:2;27889:7;27857:27;:40::i;:::-;27665:239;;;:::o;9739:112::-;9804:7;9830;:14;;;9823:21;;9739:112;;;:::o;23368:347::-;23489:4;23514:15;:2;:13;;;:15::i;:::-;23513:16;23509:58;;;23552:4;23545:11;;;;23509:58;23577:13;23609:2;23593:36;;;23630:10;23642:4;23648:7;23657:5;23593:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23593:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23593:70:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23593:70:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23593:70:1;;;;;;;;;;;;;;;;23577:86;;12310:10;23691:16;;23681:26;;;:6;:26;;;;23673:35;;;23368:347;;;;;;;:::o;22348:447::-;22461:4;22441:24;;:16;22449:7;22441;:16::i;:::-;:24;;;22433:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22543:1;22529:16;;:2;:16;;;;22521:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22597:23;22612:7;22597:14;:23::i;:::-;22631:35;:17;:23;22649:4;22631:23;;;;;;;;;;;;;;;:33;:35::i;:::-;22676:33;:17;:21;22694:2;22676:21;;;;;;;;;;;;;;;:31;:33::i;:::-;22743:2;22720:11;:20;22732:7;22720:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;22780:7;22776:2;22761:27;;22770:4;22761:27;;;;;;;;;;;;22348:447;;;:::o;30773:1128::-;31035:22;31060:32;31090:1;31060:12;:18;31073:4;31060:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;31035:57;;31102:18;31123:17;:26;31141:7;31123:26;;;;;;;;;;;;31102:47;;31267:14;31253:10;:28;;31249:323;;;31297:19;31319:12;:18;31332:4;31319:18;;;;;;;;;;;;;;;31338:14;31319:34;;;;;;;;;;;;;;;;;;31297:56;;31401:11;31368:12;:18;31381:4;31368:18;;;;;;;;;;;;;;;31387:10;31368:30;;;;;;;;;;;;;;;;;:44;;;;31517:10;31484:17;:30;31502:11;31484:30;;;;;;;;;;;:43;;;;31249:323;;31658:12;:18;31671:4;31658:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;30773:1128;;;;:::o;29619:183::-;29732:12;:16;29745:2;29732:16;;;;;;;;;;;;;;;:23;;;;29703:17;:26;29721:7;29703:26;;;;;;;;;;;:52;;;;29765:12;:16;29778:2;29765:16;;;;;;;;;;;;;;;29787:7;29765:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;29765:30:1;;;;;;;;;;;;;;;;;;;;;;29619:183;;:::o;8236:413::-;8296:4;8499:12;8608:7;8596:20;8588:28;;8641:1;8634:4;:8;8627:15;;;8236:413;;;:::o;23877:171::-;23976:1;23940:38;;:15;:24;23956:7;23940:24;;;;;;;;;;;;;;;;;;;;;:38;;;;23936:106;;;24029:1;23994:15;:24;24010:7;23994:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23936:106;23877:171;:::o;9952:108::-;10032:21;10051:1;10032:7;:14;;;:18;;:21;;;;:::i;:::-;10015:7;:14;;:38;;;;9952:108;:::o;9857:89::-;9938:1;9920:7;:14;;;:19;;;;;;;;;;;9857:89;:::o;5386:179::-;5444:7;5476:1;5471;:6;;5463:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:9;5538:1;5534;:5;5522:17;;5557:1;5550:8;;;5386:179;;;;:::o;24794:8461::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.626Z", - "devdoc": { - "details": "See https://eips.ethereum.org/EIPS/eip-721", - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", - "params": { - "to": "address to be approved for the given token ID", - "tokenId": "uint256 ID of the token to be approved" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "owner": "address to query the balance of" - }, - "return": "uint256 representing the amount owned by the passed address" - }, - "constructor": { - "details": "Constructor function." - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", - "params": { - "tokenId": "uint256 ID of the token to query the approval of" - }, - "return": "address currently approved for the given token ID" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner.", - "params": { - "operator": "operator address which you want to query the approval of", - "owner": "owner address which you want to query the approval of" - }, - "return": "bool whether the given operator is approved by the given owner" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID.", - "params": { - "tokenId": "uint256 ID of the token to query the owner of" - }, - "return": "address currently marked as the owner of the given token ID" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "_data": "bytes data to send along with a safe transfer check", - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", - "params": { - "approved": "representing the status of the approval to be set", - "to": "operator address to set the approval" - } - }, - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - }, - "tokenByIndex(uint256)": { - "details": "Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.", - "params": { - "index": "uint256 representing the index to be accessed of the tokens list" - }, - "return": "uint256 token ID at the given index of the tokens list" - }, - "tokenOfOwnerByIndex(address,uint256)": { - "details": "Gets the token ID at a given index of the tokens list of the requested owner.", - "params": { - "index": "uint256 representing the index to be accessed of the requested tokens list", - "owner": "address owning the tokens list to be accessed" - }, - "return": "uint256 token ID at the given index of the tokens list owned by the requested address" - }, - "totalSupply()": { - "details": "Gets the total amount of tokens stored by the contract.", - "return": "uint256 representing the total amount of tokens" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - } - }, - "title": "ERC-721 Non-Fungible Token with optional enumeration extension logic" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/ERC721Full.json b/src/abis/ERC721Full.json deleted file mode 100644 index 1f318c5..0000000 --- a/src/abis/ERC721Full.json +++ /dev/null @@ -1,37944 +0,0 @@ -{ - "contractName": "ERC721Full", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200262538038062002625833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b828101905060208101848111156200006757600080fd5b81518560018202830111640100000000821117156200008557600080fd5b50509291906020018051640100000000811115620000a257600080fd5b82810190506020810184811115620000b957600080fd5b8151856001820283011164010000000082111715620000d757600080fd5b505092919050505081816200011e6301ffc9a77c01000000000000000000000000000000000000000000000000000000000262000211640100000000026401000000009004565b6200015b6380ac58cd7c01000000000000000000000000000000000000000000000000000000000262000211640100000000026401000000009004565b6200019863780e9d637c01000000000000000000000000000000000000000000000000000000000262000211640100000000026401000000009004565b8160099080519060200190620001b092919062000338565b5080600a9080519060200190620001c992919062000338565b5062000207635b5e139f7c01000000000000000000000000000000000000000000000000000000000262000211640100000000026401000000009004565b50505050620003e7565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515620002cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037b57805160ff1916838001178555620003ac565b82800160010185558215620003ac579182015b82811115620003ab5782518255916020019190600101906200038e565b5b509050620003bb9190620003bf565b5090565b620003e491905b80821115620003e0576000816000905550600101620003c6565b5090565b90565b61222e80620003f76000396000f3fe6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100eb57806306fdde031461015d578063081812fc146101ed578063095ea7b31461026857806318160ddd146102c357806323b872dd146102ee5780632f745c591461036957806342842e0e146103d85780634f6ccce7146104535780636352211e146104a257806370a082311461051d57806395d89b4114610582578063a22cb46514610612578063b88d4fde1461066f578063c87b56dd14610781578063e985e9c514610835575b600080fd5b3480156100f757600080fd5b506101436004803603602081101561010e57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506108be565b604051808215151515815260200191505060405180910390f35b34801561016957600080fd5b50610172610925565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b2578082015181840152602081019050610197565b50505050905090810190601f1680156101df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f957600080fd5b506102266004803603602081101561021057600080fd5b81019080803590602001909291905050506109c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b506102c16004803603604081101561028b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa7565b005b3480156102cf57600080fd5b506102d8610d0a565b6040518082815260200191505060405180910390f35b3480156102fa57600080fd5b506103676004803603606081101561031157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d17565b005b34801561037557600080fd5b506103c26004803603604081101561038c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcb565b6040518082815260200191505060405180910390f35b3480156103e457600080fd5b50610451600480360360608110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed1565b005b34801561045f57600080fd5b5061048c6004803603602081101561047657600080fd5b8101908080359060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b3480156104ae57600080fd5b506104db600480360360208110156104c557600080fd5b8101908080359060200190929190505050610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052957600080fd5b5061056c6004803603602081101561054057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110c6565b6040518082815260200191505060405180910390f35b34801561058e57600080fd5b506105976111e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105d75780820151818401526020810190506105bc565b50505050905090810190601f1680156106045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061e57600080fd5b5061066d6004803603604081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611282565b005b34801561067b57600080fd5b5061077f6004803603608081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106f957600080fd5b82018360208201111561070b57600080fd5b8035906020019184600183028401116401000000008311171561072d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611427565b005b34801561078d57600080fd5b506107ba600480360360208110156107a457600080fd5b81019080803590602001909291905050506114de565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b506108a46004803603604081101561085857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611636565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109bd5780601f10610992576101008083540402835291602001916109bd565b820191906000526020600020905b8154815290600101906020018083116109a057829003601f168201915b5050505050905090565b60006109d2826116ca565b1515610a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610ab282610fb9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bbe5750610bbd8133611636565b5b1515610c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610d21338261173c565b1515610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610dc6838383611875565b505050565b6000610dd6836110c6565b82101515610e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610ebe57fe5b9060005260206000200154905092915050565b610eed8383836020604051908101604052806000815250611427565b505050565b6000610efc610d0a565b82101515610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515610fa757fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111d9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611899565b9050919050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112785780601f1061124d57610100808354040283529160200191611278565b820191906000526020600020905b81548152906001019060200180831161125b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611326576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b611432848484610d17565b61143e848484846118a7565b15156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b60606114e9826116ca565b1515611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561162a5780601f106115ff5761010080835404028352916020019161162a565b820191906000526020600020905b81548152906001019060200180831161160d57829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611747826116ca565b15156117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b60006117ec83610fb9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061185b57508373ffffffffffffffffffffffffffffffffffffffff16611843846109c7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061186c575061186b8185611636565b5b91505092915050565b611880838383611aca565b61188a8382611daf565b6118948282611f53565b505050565b600081600001549050919050565b60006118c88473ffffffffffffffffffffffffffffffffffffffff1661201a565b15156118d75760019050611ac2565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119ce5780820151818401526020810190506119b3565b50505050905090810190601f1680156119fb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611aea82610fb9565b73ffffffffffffffffffffffffffffffffffffffff16141515611b9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611c6f8161202d565b611cb6600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206120ed565b611cfd600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612110565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000611e076001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061212690919063ffffffff16565b90506000600660008481526020019081526020016000205490508181141515611efa576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611e7857fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611ed257fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611f4c91906121b1565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156120ea5760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6121056001826000015461212690919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b60008282111515156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b8154818355818111156121d8578183600052602060002091820191016121d791906121dd565b5b505050565b6121ff91905b808211156121fb5760008160009055506001016121e3565b5090565b9056fea165627a7a7230582091a4ceb235c519f211cba8eb28285ee08e29fc4c07d7efedccb829295db91e870029", - "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100eb57806306fdde031461015d578063081812fc146101ed578063095ea7b31461026857806318160ddd146102c357806323b872dd146102ee5780632f745c591461036957806342842e0e146103d85780634f6ccce7146104535780636352211e146104a257806370a082311461051d57806395d89b4114610582578063a22cb46514610612578063b88d4fde1461066f578063c87b56dd14610781578063e985e9c514610835575b600080fd5b3480156100f757600080fd5b506101436004803603602081101561010e57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506108be565b604051808215151515815260200191505060405180910390f35b34801561016957600080fd5b50610172610925565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101b2578082015181840152602081019050610197565b50505050905090810190601f1680156101df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f957600080fd5b506102266004803603602081101561021057600080fd5b81019080803590602001909291905050506109c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027457600080fd5b506102c16004803603604081101561028b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa7565b005b3480156102cf57600080fd5b506102d8610d0a565b6040518082815260200191505060405180910390f35b3480156102fa57600080fd5b506103676004803603606081101561031157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d17565b005b34801561037557600080fd5b506103c26004803603604081101561038c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcb565b6040518082815260200191505060405180910390f35b3480156103e457600080fd5b50610451600480360360608110156103fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed1565b005b34801561045f57600080fd5b5061048c6004803603602081101561047657600080fd5b8101908080359060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b3480156104ae57600080fd5b506104db600480360360208110156104c557600080fd5b8101908080359060200190929190505050610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052957600080fd5b5061056c6004803603602081101561054057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110c6565b6040518082815260200191505060405180910390f35b34801561058e57600080fd5b506105976111e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105d75780820151818401526020810190506105bc565b50505050905090810190601f1680156106045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561061e57600080fd5b5061066d6004803603604081101561063557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611282565b005b34801561067b57600080fd5b5061077f6004803603608081101561069257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106f957600080fd5b82018360208201111561070b57600080fd5b8035906020019184600183028401116401000000008311171561072d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611427565b005b34801561078d57600080fd5b506107ba600480360360208110156107a457600080fd5b81019080803590602001909291905050506114de565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b506108a46004803603604081101561085857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611636565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109bd5780601f10610992576101008083540402835291602001916109bd565b820191906000526020600020905b8154815290600101906020018083116109a057829003601f168201915b5050505050905090565b60006109d2826116ca565b1515610a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610ab282610fb9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610bbe5750610bbd8133611636565b5b1515610c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600780549050905090565b610d21338261173c565b1515610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610dc6838383611875565b505050565b6000610dd6836110c6565b82101515610e72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243373231456e756d657261626c653a206f776e657220696e646578206f7581526020017f74206f6620626f756e647300000000000000000000000000000000000000000081525060400191505060405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610ebe57fe5b9060005260206000200154905092915050565b610eed8383836020604051908101604052806000815250611427565b505050565b6000610efc610d0a565b82101515610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f81526020017f7574206f6620626f756e6473000000000000000000000000000000000000000081525060400191505060405180910390fd5b600782815481101515610fa757fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111d9600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611899565b9050919050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112785780601f1061124d57610100808354040283529160200191611278565b820191906000526020600020905b81548152906001019060200180831161125b57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611326576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b611432848484610d17565b61143e848484846118a7565b15156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b60606114e9826116ca565b1515611583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561162a5780601f106115ff5761010080835404028352916020019161162a565b820191906000526020600020905b81548152906001019060200180831161160d57829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611747826116ca565b15156117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b60006117ec83610fb9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061185b57508373ffffffffffffffffffffffffffffffffffffffff16611843846109c7565b73ffffffffffffffffffffffffffffffffffffffff16145b8061186c575061186b8185611636565b5b91505092915050565b611880838383611aca565b61188a8382611daf565b6118948282611f53565b505050565b600081600001549050919050565b60006118c88473ffffffffffffffffffffffffffffffffffffffff1661201a565b15156118d75760019050611ac2565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119ce5780820151818401526020810190506119b3565b50505050905090810190601f1680156119fb5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16611aea82610fb9565b73ffffffffffffffffffffffffffffffffffffffff16141515611b9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611c6f8161202d565b611cb6600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206120ed565b611cfd600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612110565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000611e076001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061212690919063ffffffff16565b90506000600660008481526020019081526020016000205490508181141515611efa576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611e7857fe5b9060005260206000200154905080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515611ed257fe5b9060005260206000200181905550816006600083815260200190815260200160002081905550505b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611f4c91906121b1565b5050505050565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506006600083815260200190815260200160002081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156120ea5760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6121056001826000015461212690919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b60008282111515156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b8154818355818111156121d8578183600052602060002091820191016121d791906121dd565b5b505050565b6121ff91905b808211156121fb5760008160009055506001016121e3565b5090565b9056fea165627a7a7230582091a4ceb235c519f211cba8eb28285ee08e29fc4c07d7efedccb829295db91e870029", - "sourceMap": "36815:227:1:-;;;36885:155;8:9:-1;5:2;;;30:1;27;20:12;5:2;36885:155:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;36885:155:1;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;36885:155:1;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;36885:155:1;;;;;;36962:4;36968:6;10817:40;10484:10;10836:20;;10817:18;;;:40;;;:::i;:::-;13817;13691:10;13836:20;;13817:18;;;:40;;;:::i;:::-;25848:51;25663:10;25867:31;;25848:18;;;:51;;;:::i;:::-;34528:4;34520:5;:12;;;;;;;;;;;;:::i;:::-;;34552:6;34542:7;:16;;;;;;;;;;;;:::i;:::-;;34646:49;34382:10;34665:29;;34646:18;;;:49;;;:::i;:::-;34448:254;;36885:155;;36815:227;;11541:190;11631:10;11616:25;;:11;:25;;;;;11608:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:4;11684:20;:33;11705:11;11684:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11541:190;:::o;36815:227::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "36815:227:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11014:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15834:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15138:411:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15138:411:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26662:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26662:94:1;;;;;;;;;;;;;;;;;;;;;;;17474:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17474:285:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17474:285:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26280:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26280:229:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26280:229:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18392:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18392:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18392:132:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27094:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27094:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27094:196:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14494:223:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14494:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14068:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14068:207:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14068:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16327:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16327:243:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16327:243:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19229:265:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19229:265:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19229:265:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19229:265:1;;;;;;;;;;;;;;;;;;35286:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35286:202:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16892:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16892:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16892:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:20;:33;11128:11;11107:33;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:40;;11014:133;;;:::o;34807:83::-;34846:13;34878:5;34871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;:::o;15834:200::-;15893:7;15920:16;15928:7;15920;:16::i;:::-;15912:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16003:15;:24;16019:7;16003:24;;;;;;;;;;;;;;;;;;;;;15996:31;;15834:200;;;:::o;15138:411::-;15201:13;15217:16;15225:7;15217;:16::i;:::-;15201:32;;15257:5;15251:11;;:2;:11;;;;15243:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15333:5;15319:19;;:10;:19;;;:58;;;;15342:35;15359:5;15366:10;15342:16;:35::i;:::-;15319:58;15311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15497:2;15470:15;:24;15486:7;15470:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15534:7;15530:2;15514:28;;15523:5;15514:28;;;;;;;;;;;;15138:411;;;:::o;26662:94::-;26706:7;26732:10;:17;;;;26725:24;;26662:94;:::o;17474:285::-;17616:39;17635:10;17647:7;17616:18;:39::i;:::-;17608:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:32;17734:4;17740:2;17744:7;17720:13;:32::i;:::-;17474:285;;;:::o;26280:229::-;26360:7;26395:16;26405:5;26395:9;:16::i;:::-;26387:5;:24;26379:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26476:12;:19;26489:5;26476:19;;;;;;;;;;;;;;;26496:5;26476:26;;;;;;;;;;;;;;;;;;26469:33;;26280:229;;;;:::o;18392:132::-;18478:39;18495:4;18501:2;18505:7;18478:39;;;;;;;;;;;;;:16;:39::i;:::-;18392:132;;;:::o;27094:196::-;27152:7;27187:13;:11;:13::i;:::-;27179:5;:21;27171:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27266:10;27277:5;27266:17;;;;;;;;;;;;;;;;;;27259:24;;27094:196;;;:::o;14494:223::-;14549:7;14568:13;14584:11;:20;14596:7;14584:20;;;;;;;;;;;;;;;;;;;;;14568:36;;14639:1;14622:19;;:5;:19;;;;14614:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14705:5;14698:12;;;14494:223;;;:::o;14068:207::-;14123:7;14167:1;14150:19;;:5;:19;;;;14142:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14234:34;:17;:24;14252:5;14234:24;;;;;;;;;;;;;;;:32;:34::i;:::-;14227:41;;14068:207;;;:::o;34999:87::-;35040:13;35072:7;35065:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;:::o;16327:243::-;16412:10;16406:16;;:2;:16;;;;16398:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16500:8;16463:18;:30;16482:10;16463:30;;;;;;;;;;;;;;;:34;16494:2;16463:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16550:2;16523:40;;16538:10;16523:40;;;16554:8;16523:40;;;;;;;;;;;;;;;;;;;;;;16327:243;;:::o;19229:265::-;19335:31;19348:4;19354:2;19358:7;19335:12;:31::i;:::-;19384:48;19407:4;19413:2;19417:7;19426:5;19384:22;:48::i;:::-;19376:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;;;:::o;35286:202::-;35344:13;35377:16;35385:7;35377;:16::i;:::-;35369:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35462:10;:19;35473:7;35462:19;;;;;;;;;;;35455:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35286:202;;;:::o;16892:145::-;16972:4;16995:18;:25;17014:5;16995:25;;;;;;;;;;;;;;;:35;17021:8;16995:35;;;;;;;;;;;;;;;;;;;;;;;;;16988:42;;16892:145;;;;:::o;19689:152::-;19746:4;19762:13;19778:11;:20;19790:7;19778:20;;;;;;;;;;;;;;;;;;;;;19762:36;;19832:1;19815:19;;:5;:19;;;;19808:26;;;19689:152;;;:::o;20202:329::-;20287:4;20311:16;20319:7;20311;:16::i;:::-;20303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:13;20402:16;20410:7;20402;:16::i;:::-;20386:32;;20447:5;20436:16;;:7;:16;;;:51;;;;20480:7;20456:31;;:20;20468:7;20456:11;:20::i;:::-;:31;;;20436:51;:87;;;;20491:32;20508:5;20515:7;20491:16;:32::i;:::-;20436:87;20428:96;;;20202:329;;;;:::o;27665:239::-;27750:38;27770:4;27776:2;27780:7;27750:19;:38::i;:::-;27799:47;27832:4;27838:7;27799:32;:47::i;:::-;27857:40;27885:2;27889:7;27857:27;:40::i;:::-;27665:239;;;:::o;9739:112::-;9804:7;9830;:14;;;9823:21;;9739:112;;;:::o;23368:347::-;23489:4;23514:15;:2;:13;;;:15::i;:::-;23513:16;23509:58;;;23552:4;23545:11;;;;23509:58;23577:13;23609:2;23593:36;;;23630:10;23642:4;23648:7;23657:5;23593:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23593:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23593:70:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23593:70:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23593:70:1;;;;;;;;;;;;;;;;23577:86;;12310:10;23691:16;;23681:26;;;:6;:26;;;;23673:35;;;23368:347;;;;;;;:::o;22348:447::-;22461:4;22441:24;;:16;22449:7;22441;:16::i;:::-;:24;;;22433:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22543:1;22529:16;;:2;:16;;;;22521:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22597:23;22612:7;22597:14;:23::i;:::-;22631:35;:17;:23;22649:4;22631:23;;;;;;;;;;;;;;;:33;:35::i;:::-;22676:33;:17;:21;22694:2;22676:21;;;;;;;;;;;;;;;:31;:33::i;:::-;22743:2;22720:11;:20;22732:7;22720:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;22780:7;22776:2;22761:27;;22770:4;22761:27;;;;;;;;;;;;22348:447;;;:::o;30773:1128::-;31035:22;31060:32;31090:1;31060:12;:18;31073:4;31060:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;31035:57;;31102:18;31123:17;:26;31141:7;31123:26;;;;;;;;;;;;31102:47;;31267:14;31253:10;:28;;31249:323;;;31297:19;31319:12;:18;31332:4;31319:18;;;;;;;;;;;;;;;31338:14;31319:34;;;;;;;;;;;;;;;;;;31297:56;;31401:11;31368:12;:18;31381:4;31368:18;;;;;;;;;;;;;;;31387:10;31368:30;;;;;;;;;;;;;;;;;:44;;;;31517:10;31484:17;:30;31502:11;31484:30;;;;;;;;;;;:43;;;;31249:323;;31658:12;:18;31671:4;31658:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;30773:1128;;;;:::o;29619:183::-;29732:12;:16;29745:2;29732:16;;;;;;;;;;;;;;;:23;;;;29703:17;:26;29721:7;29703:26;;;;;;;;;;;:52;;;;29765:12;:16;29778:2;29765:16;;;;;;;;;;;;;;;29787:7;29765:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;29765:30:1;;;;;;;;;;;;;;;;;;;;;;29619:183;;:::o;8236:413::-;8296:4;8499:12;8608:7;8596:20;8588:28;;8641:1;8634:4;:8;8627:15;;;8236:413;;;:::o;23877:171::-;23976:1;23940:38;;:15;:24;23956:7;23940:24;;;;;;;;;;;;;;;;;;;;;:38;;;;23936:106;;;24029:1;23994:15;:24;24010:7;23994:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23936:106;23877:171;:::o;9952:108::-;10032:21;10051:1;10032:7;:14;;;:18;;:21;;;;:::i;:::-;10015:7;:14;;:38;;;;9952:108;:::o;9857:89::-;9938:1;9920:7;:14;;;:19;;;;;;;;;;;9857:89;:::o;5386:179::-;5444:7;5476:1;5471;:6;;5463:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:9;5538:1;5534;:5;5522:17;;5557:1;5550:8;;;5386:179;;;;:::o;36815:227::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.667Z", - "devdoc": { - "details": "see https://eips.ethereum.org/EIPS/eip-721", - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", - "params": { - "to": "address to be approved for the given token ID", - "tokenId": "uint256 ID of the token to be approved" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "owner": "address to query the balance of" - }, - "return": "uint256 representing the amount owned by the passed address" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", - "params": { - "tokenId": "uint256 ID of the token to query the approval of" - }, - "return": "address currently approved for the given token ID" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner.", - "params": { - "operator": "operator address which you want to query the approval of", - "owner": "owner address which you want to query the approval of" - }, - "return": "bool whether the given operator is approved by the given owner" - }, - "name()": { - "details": "Gets the token name.", - "return": "string representing the token name" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID.", - "params": { - "tokenId": "uint256 ID of the token to query the owner of" - }, - "return": "address currently marked as the owner of the given token ID" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "_data": "bytes data to send along with a safe transfer check", - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", - "params": { - "approved": "representing the status of the approval to be set", - "to": "operator address to set the approval" - } - }, - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - }, - "symbol()": { - "details": "Gets the token symbol.", - "return": "string representing the token symbol" - }, - "tokenByIndex(uint256)": { - "details": "Gets the token ID at a given index of all the tokens in this contract Reverts if the index is greater or equal to the total number of tokens.", - "params": { - "index": "uint256 representing the index to be accessed of the tokens list" - }, - "return": "uint256 token ID at the given index of the tokens list" - }, - "tokenOfOwnerByIndex(address,uint256)": { - "details": "Gets the token ID at a given index of the tokens list of the requested owner.", - "params": { - "index": "uint256 representing the index to be accessed of the requested tokens list", - "owner": "address owning the tokens list to be accessed" - }, - "return": "uint256 token ID at the given index of the tokens list owned by the requested address" - }, - "tokenURI(uint256)": { - "details": "Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.", - "params": { - "tokenId": "uint256 ID of the token to query" - } - }, - "totalSupply()": { - "details": "Gets the total amount of tokens stored by the contract.", - "return": "uint256 representing the total amount of tokens" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - } - }, - "title": "Full ERC721 Token This implementation includes all the required and some optional functionality of the ERC721 standard Moreover, it includes approve all functionality using operator terminology" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/ERC721Metadata.json b/src/abis/ERC721Metadata.json deleted file mode 100644 index 88250d7..0000000 --- a/src/abis/ERC721Metadata.json +++ /dev/null @@ -1,37870 +0,0 @@ -{ - "contractName": "ERC721Metadata", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200202038038062002020833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b828101905060208101848111156200006757600080fd5b81518560018202830111640100000000821117156200008557600080fd5b50509291906020018051640100000000811115620000a257600080fd5b82810190506020810184811115620000b957600080fd5b8151856001820283011164010000000082111715620000d757600080fd5b50509291905050506200011c6301ffc9a77c010000000000000000000000000000000000000000000000000000000002620001d0640100000000026401000000009004565b620001596380ac58cd7c010000000000000000000000000000000000000000000000000000000002620001d0640100000000026401000000009004565b816005908051906020019062000171929190620002f7565b5080600690805190602001906200018a929190620002f7565b50620001c8635b5e139f7c010000000000000000000000000000000000000000000000000000000002620001d0640100000000026401000000009004565b5050620003a6565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515156200028b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200033a57805160ff19168380011785556200036b565b828001600101855582156200036b579182015b828111156200036a5782518255916020019190600101906200034d565b5b5090506200037a91906200037e565b5090565b620003a391905b808211156200039f57600081600090555060010162000385565b5090565b90565b611c6a80620003b66000396000f3fe6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca57806306fdde031461013c578063081812fc146101cc578063095ea7b31461024757806323b872dd146102a257806342842e0e1461031d5780636352211e1461039857806370a082311461041357806395d89b4114610478578063a22cb46514610508578063b88d4fde14610565578063c87b56dd14610677578063e985e9c51461072b575b600080fd5b3480156100d657600080fd5b50610122600480360360208110156100ed57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b4565b604051808215151515815260200191505060405180910390f35b34801561014857600080fd5b5061015161081b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610191578082015181840152602081019050610176565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b50610205600480360360208110156101ef57600080fd5b81019080803590602001909291905050506108bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025357600080fd5b506102a06004803603604081101561026a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061099d565b005b3480156102ae57600080fd5b5061031b600480360360608110156102c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c00565b005b34801561032957600080fd5b506103966004803603606081101561034057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb4565b005b3480156103a457600080fd5b506103d1600480360360208110156103bb57600080fd5b8101908080359060200190929190505050610cd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041f57600080fd5b506104626004803603602081101561043657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de2565b6040518082815260200191505060405180910390f35b34801561048457600080fd5b5061048d610efc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cd5780820151818401526020810190506104b2565b50505050905090810190601f1680156104fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051457600080fd5b506105636004803603604081101561052b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f9e565b005b34801561057157600080fd5b506106756004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105ef57600080fd5b82018360208201111561060157600080fd5b8035906020019184600183028401116401000000008311171561062357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611143565b005b34801561068357600080fd5b506106b06004803603602081101561069a57600080fd5b81019080803590602001909291905050506111fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f05780820151818401526020810190506106d5565b50505050905090810190601f16801561071d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073757600080fd5b5061079a6004803603604081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611352565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b60006108c8826113e6565b1515610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109a882610cd5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ab45750610ab38133611352565b5b1515610b4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610c0a3382611458565b1515610ca4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610caf838383611591565b505050565b610cd08383836020604051908101604052806000815250611143565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610dd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef5600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611876565b9050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f945780601f10610f6957610100808354040283529160200191610f94565b820191906000526020600020905b815481529060010190602001808311610f7757829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611042576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b61114e848484610c00565b61115a84848484611884565b15156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6060611205826113e6565b151561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600760008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611463826113e6565b15156114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061150883610cd5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061157757508373ffffffffffffffffffffffffffffffffffffffff1661155f846108bd565b73ffffffffffffffffffffffffffffffffffffffff16145b8061158857506115878185611352565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115b182610cd5565b73ffffffffffffffffffffffffffffffffffffffff16141515611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561172d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61173681611aa7565b61177d600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b67565b6117c4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b8a565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081600001549050919050565b60006118a58473ffffffffffffffffffffffffffffffffffffffff16611ba0565b15156118b45760019050611a9f565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119ab578082015181840152602081019050611990565b50505050905090810190601f1680156119d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156119fa57600080fd5b505af1158015611a0e573d6000803e3d6000fd5b505050506040513d6020811015611a2457600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b645760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b611b7f60018260000154611bb390919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600080823b905060008111915050919050565b6000828211151515611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b60008284039050809150509291505056fea165627a7a723058203e028111e9db502d0d461f42ff9109c3b07fe7a4cb54947c45fb50039f5da96b0029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca57806306fdde031461013c578063081812fc146101cc578063095ea7b31461024757806323b872dd146102a257806342842e0e1461031d5780636352211e1461039857806370a082311461041357806395d89b4114610478578063a22cb46514610508578063b88d4fde14610565578063c87b56dd14610677578063e985e9c51461072b575b600080fd5b3480156100d657600080fd5b50610122600480360360208110156100ed57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506107b4565b604051808215151515815260200191505060405180910390f35b34801561014857600080fd5b5061015161081b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610191578082015181840152602081019050610176565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b50610205600480360360208110156101ef57600080fd5b81019080803590602001909291905050506108bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025357600080fd5b506102a06004803603604081101561026a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061099d565b005b3480156102ae57600080fd5b5061031b600480360360608110156102c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c00565b005b34801561032957600080fd5b506103966004803603606081101561034057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cb4565b005b3480156103a457600080fd5b506103d1600480360360208110156103bb57600080fd5b8101908080359060200190929190505050610cd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041f57600080fd5b506104626004803603602081101561043657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de2565b6040518082815260200191505060405180910390f35b34801561048457600080fd5b5061048d610efc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104cd5780820151818401526020810190506104b2565b50505050905090810190601f1680156104fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051457600080fd5b506105636004803603604081101561052b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f9e565b005b34801561057157600080fd5b506106756004803603608081101561058857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105ef57600080fd5b82018360208201111561060157600080fd5b8035906020019184600183028401116401000000008311171561062357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611143565b005b34801561068357600080fd5b506106b06004803603602081101561069a57600080fd5b81019080803590602001909291905050506111fa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f05780820151818401526020810190506106d5565b50505050905090810190601f16801561071d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073757600080fd5b5061079a6004803603604081101561074e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611352565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b60006108c8826113e6565b1515610962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a20617070726f76656420717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109a882610cd5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6581526020017f720000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ab45750610ab38133611352565b5b1515610b4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7781526020017f6e6572206e6f7220617070726f76656420666f7220616c6c000000000000000081525060400191505060405180910390fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610c0a3382611458565b1515610ca4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f81526020017f776e6572206e6f7220617070726f76656400000000000000000000000000000081525060400191505060405180910390fd5b610caf838383611591565b505050565b610cd08383836020604051908101604052806000815250611143565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610dd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a206f776e657220717565727920666f72206e6f6e657869737481526020017f656e7420746f6b656e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610eae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4552433732313a2062616c616e636520717565727920666f7220746865207a6581526020017f726f20616464726573730000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610ef5600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611876565b9050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f945780601f10610f6957610100808354040283529160200191610f94565b820191906000526020600020905b815481529060010190602001808311610f7757829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611042576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b61114e848484610c00565b61115a84848484611884565b15156111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581526020017f63656976657220696d706c656d656e746572000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6060611205826113e6565b151561129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4552433732314d657461646174613a2055524920717565727920666f72206e6f81526020017f6e6578697374656e7420746f6b656e000000000000000000000000000000000081525060400191505060405180910390fd5b600760008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113465780601f1061131b57610100808354040283529160200191611346565b820191906000526020600020905b81548152906001019060200180831161132957829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611463826113e6565b15156114fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657881526020017f697374656e7420746f6b656e000000000000000000000000000000000000000081525060400191505060405180910390fd5b600061150883610cd5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061157757508373ffffffffffffffffffffffffffffffffffffffff1661155f846108bd565b73ffffffffffffffffffffffffffffffffffffffff16145b8061158857506115878185611352565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115b182610cd5565b73ffffffffffffffffffffffffffffffffffffffff16141515611662576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001807f4552433732313a207472616e73666572206f6620746f6b656e2074686174206981526020017f73206e6f74206f776e000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561172d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4552433732313a207472616e7366657220746f20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61173681611aa7565b61177d600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b67565b6117c4600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b8a565b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081600001549050919050565b60006118a58473ffffffffffffffffffffffffffffffffffffffff16611ba0565b15156118b45760019050611a9f565b60008473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119ab578082015181840152602081019050611990565b50505050905090810190601f1680156119d85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156119fa57600080fd5b505af1158015611a0e573d6000803e3d6000fd5b505050506040513d6020811015611a2457600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b645760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b611b7f60018260000154611bb390919063ffffffff16565b816000018190555050565b6001816000016000828254019250508190555050565b600080823b905060008111915050919050565b6000828211151515611c2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b60008284039050809150509291505056fea165627a7a723058203e028111e9db502d0d461f42ff9109c3b07fe7a4cb54947c45fb50039f5da96b0029", - "sourceMap": "33817:2637:1:-;;;34448:254;8:9:-1;5:2;;;30:1;27;20:12;5:2;34448:254:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;34448:254:1;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;34448:254:1;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;34448:254:1;;;;;;10817:40;10484:10;10836:20;;10817:18;;;:40;;;:::i;:::-;13817;13691:10;13836:20;;13817:18;;;:40;;;:::i;:::-;34528:4;34520:5;:12;;;;;;;;;;;;:::i;:::-;;34552:6;34542:7;:16;;;;;;;;;;;;:::i;:::-;;34646:49;34382:10;34665:29;;34646:18;;;:49;;;:::i;:::-;34448:254;;33817:2637;;11541:190;11631:10;11616:25;;:11;:25;;;;;11608:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11720:4;11684:20;:33;11705:11;11684:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;11541:190;:::o;33817:2637::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "33817:2637:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11014:133:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34807:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15834:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15834:200:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:411;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15138:411:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15138:411:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17474:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17474:285:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17474:285:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18392:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18392:132:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18392:132:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14494:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14494:223:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14494:223:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14068:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14068:207:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14068:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;34999:87:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16327:243;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16327:243:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16327:243:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19229:265:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;19229:265:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19229:265:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19229:265:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;19229:265:1;;;;;;;;;;;;;;;;;;35286:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35286:202:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;35286:202:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16892:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16892:145:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16892:145:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:20;:33;11128:11;11107:33;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:40;;11014:133;;;:::o;34807:83::-;34846:13;34878:5;34871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34807:83;:::o;15834:200::-;15893:7;15920:16;15928:7;15920;:16::i;:::-;15912:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16003:15;:24;16019:7;16003:24;;;;;;;;;;;;;;;;;;;;;15996:31;;15834:200;;;:::o;15138:411::-;15201:13;15217:16;15225:7;15217;:16::i;:::-;15201:32;;15257:5;15251:11;;:2;:11;;;;15243:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15333:5;15319:19;;:10;:19;;;:58;;;;15342:35;15359:5;15366:10;15342:16;:35::i;:::-;15319:58;15311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15497:2;15470:15;:24;15486:7;15470:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15534:7;15530:2;15514:28;;15523:5;15514:28;;;;;;;;;;;;15138:411;;;:::o;17474:285::-;17616:39;17635:10;17647:7;17616:18;:39::i;:::-;17608:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:32;17734:4;17740:2;17744:7;17720:13;:32::i;:::-;17474:285;;;:::o;18392:132::-;18478:39;18495:4;18501:2;18505:7;18478:39;;;;;;;;;;;;;:16;:39::i;:::-;18392:132;;;:::o;14494:223::-;14549:7;14568:13;14584:11;:20;14596:7;14584:20;;;;;;;;;;;;;;;;;;;;;14568:36;;14639:1;14622:19;;:5;:19;;;;14614:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14705:5;14698:12;;;14494:223;;;:::o;14068:207::-;14123:7;14167:1;14150:19;;:5;:19;;;;14142:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14234:34;:17;:24;14252:5;14234:24;;;;;;;;;;;;;;;:32;:34::i;:::-;14227:41;;14068:207;;;:::o;34999:87::-;35040:13;35072:7;35065:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34999:87;:::o;16327:243::-;16412:10;16406:16;;:2;:16;;;;16398:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16500:8;16463:18;:30;16482:10;16463:30;;;;;;;;;;;;;;;:34;16494:2;16463:34;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;16550:2;16523:40;;16538:10;16523:40;;;16554:8;16523:40;;;;;;;;;;;;;;;;;;;;;;16327:243;;:::o;19229:265::-;19335:31;19348:4;19354:2;19358:7;19335:12;:31::i;:::-;19384:48;19407:4;19413:2;19417:7;19426:5;19384:22;:48::i;:::-;19376:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:265;;;;:::o;35286:202::-;35344:13;35377:16;35385:7;35377;:16::i;:::-;35369:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35462:10;:19;35473:7;35462:19;;;;;;;;;;;35455:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35286:202;;;:::o;16892:145::-;16972:4;16995:18;:25;17014:5;16995:25;;;;;;;;;;;;;;;:35;17021:8;16995:35;;;;;;;;;;;;;;;;;;;;;;;;;16988:42;;16892:145;;;;:::o;19689:152::-;19746:4;19762:13;19778:11;:20;19790:7;19778:20;;;;;;;;;;;;;;;;;;;;;19762:36;;19832:1;19815:19;;:5;:19;;;;19808:26;;;19689:152;;;:::o;20202:329::-;20287:4;20311:16;20319:7;20311;:16::i;:::-;20303:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20386:13;20402:16;20410:7;20402;:16::i;:::-;20386:32;;20447:5;20436:16;;:7;:16;;;:51;;;;20480:7;20456:31;;:20;20468:7;20456:11;:20::i;:::-;:31;;;20436:51;:87;;;;20491:32;20508:5;20515:7;20491:16;:32::i;:::-;20436:87;20428:96;;;20202:329;;;;:::o;22348:447::-;22461:4;22441:24;;:16;22449:7;22441;:16::i;:::-;:24;;;22433:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22543:1;22529:16;;:2;:16;;;;22521:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22597:23;22612:7;22597:14;:23::i;:::-;22631:35;:17;:23;22649:4;22631:23;;;;;;;;;;;;;;;:33;:35::i;:::-;22676:33;:17;:21;22694:2;22676:21;;;;;;;;;;;;;;;:31;:33::i;:::-;22743:2;22720:11;:20;22732:7;22720:20;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;22780:7;22776:2;22761:27;;22770:4;22761:27;;;;;;;;;;;;22348:447;;;:::o;9739:112::-;9804:7;9830;:14;;;9823:21;;9739:112;;;:::o;23368:347::-;23489:4;23514:15;:2;:13;;;:15::i;:::-;23513:16;23509:58;;;23552:4;23545:11;;;;23509:58;23577:13;23609:2;23593:36;;;23630:10;23642:4;23648:7;23657:5;23593:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23593:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23593:70:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23593:70:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23593:70:1;;;;;;;;;;;;;;;;23577:86;;12310:10;23691:16;;23681:26;;;:6;:26;;;;23673:35;;;23368:347;;;;;;;:::o;23877:171::-;23976:1;23940:38;;:15;:24;23956:7;23940:24;;;;;;;;;;;;;;;;;;;;;:38;;;;23936:106;;;24029:1;23994:15;:24;24010:7;23994:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;23936:106;23877:171;:::o;9952:108::-;10032:21;10051:1;10032:7;:14;;;:18;;:21;;;;:::i;:::-;10015:7;:14;;:38;;;;9952:108;:::o;9857:89::-;9938:1;9920:7;:14;;;:19;;;;;;;;;;;9857:89;:::o;8236:413::-;8296:4;8499:12;8608:7;8596:20;8588:28;;8641:1;8634:4;:8;8627:15;;;8236:413;;;:::o;5386:179::-;5444:7;5476:1;5471;:6;;5463:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5522:9;5538:1;5534;:5;5522:17;;5557:1;5550:8;;;5386:179;;;;:::o", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.689Z", - "devdoc": { - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID The zero address indicates there is no approved address. There can only be one approved address per token at a given time. Can only be called by the token owner or an approved operator.", - "params": { - "to": "address to be approved for the given token ID", - "tokenId": "uint256 ID of the token to be approved" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.", - "params": { - "owner": "address to query the balance of" - }, - "return": "uint256 representing the amount owned by the passed address" - }, - "constructor": { - "details": "Constructor function" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set Reverts if the token ID does not exist.", - "params": { - "tokenId": "uint256 ID of the token to query the approval of" - }, - "return": "address currently approved for the given token ID" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner.", - "params": { - "operator": "operator address which you want to query the approval of", - "owner": "owner address which you want to query the approval of" - }, - "return": "bool whether the given operator is approved by the given owner" - }, - "name()": { - "details": "Gets the token name.", - "return": "string representing the token name" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID.", - "params": { - "tokenId": "uint256 ID of the token to query the owner of" - }, - "return": "address currently marked as the owner of the given token ID" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address If the target address is a contract, it must implement `onERC721Received`, which is called upon a safe transfer, and return the magic value `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise, the transfer is reverted. Requires the msg.sender to be the owner, approved, or operator", - "params": { - "_data": "bytes data to send along with a safe transfer check", - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator An operator is allowed to transfer all tokens of the sender on their behalf.", - "params": { - "approved": "representing the status of the approval to be set", - "to": "operator address to set the approval" - } - }, - "supportsInterface(bytes4)": { - "details": "See `IERC165.supportsInterface`. * Time complexity O(1), guaranteed to always use less than 30 000 gas." - }, - "symbol()": { - "details": "Gets the token symbol.", - "return": "string representing the token symbol" - }, - "tokenURI(uint256)": { - "details": "Returns an URI for a given token ID. Throws if the token ID does not exist. May return an empty string.", - "params": { - "tokenId": "uint256 ID of the token to query" - } - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address. Usage of this method is discouraged, use `safeTransferFrom` whenever possible. Requires the msg.sender to be the owner, approved, or operator.", - "params": { - "from": "current owner of the token", - "to": "address to receive the ownership of the given token ID", - "tokenId": "uint256 ID of the token to be transferred" - } - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/IERC165.json b/src/abis/IERC165.json deleted file mode 100644 index 69611d8..0000000 --- a/src/abis/IERC165.json +++ /dev/null @@ -1,37472 +0,0 @@ -{ - "contractName": "IERC165", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.708Z", - "devdoc": { - "details": "Interface of the ERC165 standard, as defined in the [EIP](https://eips.ethereum.org/EIPS/eip-165). * Implementers can declare support of contract interfaces, which can then be queried by others (`ERC165Checker`). * For an implementation, see `ERC165`.", - "methods": { - "supportsInterface(bytes4)": { - "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) to learn more about how these ids are created. * This function call must use less than 30 000 gas." - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/IERC721.json b/src/abis/IERC721.json deleted file mode 100644 index 8c8d68b..0000000 --- a/src/abis/IERC721.json +++ /dev/null @@ -1,37736 +0,0 @@ -{ - "contractName": "IERC721", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.760Z", - "devdoc": { - "details": "Required interface of an ERC721 compliant contract.", - "methods": { - "balanceOf(address)": { - "details": "Returns the number of NFTs in `owner`'s account." - }, - "ownerOf(uint256)": { - "details": "Returns the owner of the NFT specified by `tokenId`." - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Transfers a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * * Requirements: - `from`, `to` cannot be zero. - `tokenId` must be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this NFT by either `approve` or `setApproveForAll`." - }, - "supportsInterface(bytes4)": { - "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) 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 a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * Requirements: - If the caller is not `from`, it must be approved to move this NFT by either `approve` or `setApproveForAll`." - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/IERC721Enumerable.json b/src/abis/IERC721Enumerable.json deleted file mode 100644 index e5e0df8..0000000 --- a/src/abis/IERC721Enumerable.json +++ /dev/null @@ -1,37793 +0,0 @@ -{ - "contractName": "IERC721Enumerable", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenOfOwnerByIndex", - "outputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "tokenByIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.838Z", - "devdoc": { - "details": "See https://eips.ethereum.org/EIPS/eip-721", - "methods": { - "balanceOf(address)": { - "details": "Returns the number of NFTs in `owner`'s account." - }, - "ownerOf(uint256)": { - "details": "Returns the owner of the NFT specified by `tokenId`." - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Transfers a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * * Requirements: - `from`, `to` cannot be zero. - `tokenId` must be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this NFT by either `approve` or `setApproveForAll`." - }, - "supportsInterface(bytes4)": { - "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) 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 a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * Requirements: - If the caller is not `from`, it must be approved to move this NFT by either `approve` or `setApproveForAll`." - } - }, - "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/IERC721Metadata.json b/src/abis/IERC721Metadata.json deleted file mode 100644 index bcad8e7..0000000 --- a/src/abis/IERC721Metadata.json +++ /dev/null @@ -1,37784 +0,0 @@ -{ - "contractName": "IERC721Metadata", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:08.957Z", - "devdoc": { - "details": "See https://eips.ethereum.org/EIPS/eip-721", - "methods": { - "balanceOf(address)": { - "details": "Returns the number of NFTs in `owner`'s account." - }, - "ownerOf(uint256)": { - "details": "Returns the owner of the NFT specified by `tokenId`." - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Transfers a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * * Requirements: - `from`, `to` cannot be zero. - `tokenId` must be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this NFT by either `approve` or `setApproveForAll`." - }, - "supportsInterface(bytes4)": { - "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified) 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 a specific NFT (`tokenId`) from one account (`from`) to another (`to`). * Requirements: - If the caller is not `from`, it must be approved to move this NFT by either `approve` or `setApproveForAll`." - } - }, - "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/IERC721Receiver.json b/src/abis/IERC721Receiver.json deleted file mode 100644 index ba8d307..0000000 --- a/src/abis/IERC721Receiver.json +++ /dev/null @@ -1,37496 +0,0 @@ -{ - "contractName": "IERC721Receiver", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:09.096Z", - "devdoc": { - "details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.", - "methods": { - "onERC721Received(address,address,uint256,bytes)": { - "details": "The ERC721 smart contract calls this function on the recipient after a `safeTransfer`. This function MUST return the function selector, otherwise the caller will revert the transaction. The selector to be returned can be obtained as `this.onERC721Received.selector`. This function MAY throw to revert and reject the transfer. Note: the ERC721 contract address is always the message sender.", - "params": { - "data": "Additional data with no specified format", - "from": "The address which previously owned the token", - "operator": "The address which called `safeTransferFrom` function", - "tokenId": "The NFT identifier which is being transferred" - }, - "return": "bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`" - } - }, - "title": "ERC721 token receiver interface" - }, - "userdoc": { - "methods": { - "onERC721Received(address,address,uint256,bytes)": { - "notice": "Handle the receipt of an NFT" - } - } - } -} \ No newline at end of file diff --git a/src/abis/Migrations.json b/src/abis/Migrations.json deleted file mode 100644 index 0e43b3c..0000000 --- a/src/abis/Migrations.json +++ /dev/null @@ -1,1384 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610314806100606000396000f3fe608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100b85780638da5cb5b146100e3578063fdacd5761461013a575b600080fd5b34801561007357600080fd5b506100b66004803603602081101561008a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610175565b005b3480156100c457600080fd5b506100cd61025d565b6040518082815260200191505060405180910390f35b3480156100ef57600080fd5b506100f8610263565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610288565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025a5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561024057600080fd5b505af1158015610254573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102e557806001819055505b5056fea165627a7a723058202b7e0c14417bd38e7dc80df74a35483349341f9231414704022495630d81b2cf0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100b85780638da5cb5b146100e3578063fdacd5761461013a575b600080fd5b34801561007357600080fd5b506100b66004803603602081101561008a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610175565b005b3480156100c457600080fd5b506100cd61025d565b6040518082815260200191505060405180910390f35b3480156100ef57600080fd5b506100f8610263565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610288565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025a5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561024057600080fd5b505af1158015610254573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102e557806001819055505b5056fea165627a7a723058202b7e0c14417bd38e7dc80df74a35483349341f9231414704022495630d81b2cf0029", - "sourceMap": "34:480:2:-;;;123:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;123:50:2;158:10;150:5;;:18;;;;;;;;;;;;;;;;;;34:480;;;;;;", - "deployedSourceMap": "34:480:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:165:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;347:165:2;;;;;;;;;;;;;;;;;;;;;;82:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;82:36:2;;;;;;;;;;;;;;;;;;;;;;;58:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;58:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;240:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:103:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;240:103:2;;;;;;;;;;;;;;;;;;;;347:165;223:5;;;;;;;;;;;209:19;;:10;:19;;;205:26;;;409:19;442:11;409:45;;460:8;:21;;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:47:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;460:47:2;;;;230:1;205:26;347:165;:::o;82:36::-;;;;:::o;58:20::-;;;;;;;;;;;;;:::o;240:103::-;223:5;;;;;;;;;;;209:19;;:10;:19;;;205:26;;;329:9;302:24;:36;;;;205:26;240:103;:::o", - "source": "pragma solidity >=0.4.21 <0.6.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\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": "/Users/gregory/code/nft/src/contracts/Migrations.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 1525 - ] - }, - "id": 1526, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1470, - "literals": [ - "solidity", - ">=", - "0.4", - ".21", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1525, - "linearizedBaseContracts": [ - 1525 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1472, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "58:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "58:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1474, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "82:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1473, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "82:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1482, - "nodeType": "Block", - "src": "144:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "150:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1478, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "158:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "158:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "150:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1481, - "nodeType": "ExpressionStatement", - "src": "150:18:2" - } - ] - }, - "documentation": null, - "id": 1483, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:2" - }, - "returnParameters": { - "id": 1476, - "nodeType": "ParameterList", - "parameters": [], - "src": "144:0:2" - }, - "scope": 1525, - "src": "123:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1491, - "nodeType": "Block", - "src": "199:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1485, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "209:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "209:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1487, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "223:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "209:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1490, - "nodeType": "IfStatement", - "src": "205:26:2", - "trueBody": { - "id": 1489, - "nodeType": "PlaceholderStatement", - "src": "230:1:2" - } - } - ] - }, - "documentation": null, - "id": 1492, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1484, - "nodeType": "ParameterList", - "parameters": [], - "src": "196:2:2" - }, - "src": "177:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 1503, - "nodeType": "Block", - "src": "296:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1499, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "302:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1500, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "329:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "302:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1502, - "nodeType": "ExpressionStatement", - "src": "302:36:2" - } - ] - }, - "documentation": null, - "id": 1504, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1497, - "modifierName": { - "argumentTypes": null, - "id": 1496, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "285:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "285:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1494, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "262:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "262:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "261:16:2" - }, - "returnParameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [], - "src": "296:0:2" - }, - "scope": 1525, - "src": "240:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1523, - "nodeType": "Block", - "src": "403:109:2", - "statements": [ - { - "assignments": [ - 1512 - ], - "declarations": [ - { - "constant": false, - "id": 1512, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "409:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 1511, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1525, - "src": "409:10:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1516, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1506, - "src": "442:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1513, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "431:10:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1525_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "431:23:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "409:45:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1520, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "482:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1517, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1512, - "src": "460:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1504, - "src": "460:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "460:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1522, - "nodeType": "ExpressionStatement", - "src": "460:47:2" - } - ] - }, - "documentation": null, - "id": 1524, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1509, - "modifierName": { - "argumentTypes": null, - "id": 1508, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "392:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "392:10:2" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1506, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 1524, - "src": "364:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "364:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "363:21:2" - }, - "returnParameters": { - "id": 1510, - "nodeType": "ParameterList", - "parameters": [], - "src": "403:0:2" - }, - "scope": 1525, - "src": "347:165:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1526, - "src": "34:480:2" - } - ], - "src": "0:515:2" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 1525 - ] - }, - "id": 1526, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1470, - "literals": [ - "solidity", - ">=", - "0.4", - ".21", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:2" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1525, - "linearizedBaseContracts": [ - 1525 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1472, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "58:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1471, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "58:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1474, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "82:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1473, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "82:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1482, - "nodeType": "Block", - "src": "144:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "150:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1478, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "158:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "158:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "150:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1481, - "nodeType": "ExpressionStatement", - "src": "150:18:2" - } - ] - }, - "documentation": null, - "id": 1483, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1475, - "nodeType": "ParameterList", - "parameters": [], - "src": "134:2:2" - }, - "returnParameters": { - "id": 1476, - "nodeType": "ParameterList", - "parameters": [], - "src": "144:0:2" - }, - "scope": 1525, - "src": "123:50:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1491, - "nodeType": "Block", - "src": "199:37:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1485, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "209:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "209:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1487, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "223:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "209:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1490, - "nodeType": "IfStatement", - "src": "205:26:2", - "trueBody": { - "id": 1489, - "nodeType": "PlaceholderStatement", - "src": "230:1:2" - } - } - ] - }, - "documentation": null, - "id": 1492, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1484, - "nodeType": "ParameterList", - "parameters": [], - "src": "196:2:2" - }, - "src": "177:59:2", - "visibility": "internal" - }, - { - "body": { - "id": 1503, - "nodeType": "Block", - "src": "296:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1499, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "302:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1500, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1494, - "src": "329:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "302:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1502, - "nodeType": "ExpressionStatement", - "src": "302:36:2" - } - ] - }, - "documentation": null, - "id": 1504, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1497, - "modifierName": { - "argumentTypes": null, - "id": 1496, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "285:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "285:10:2" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1494, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "262:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1493, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "262:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "261:16:2" - }, - "returnParameters": { - "id": 1498, - "nodeType": "ParameterList", - "parameters": [], - "src": "296:0:2" - }, - "scope": 1525, - "src": "240:103:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1523, - "nodeType": "Block", - "src": "403:109:2", - "statements": [ - { - "assignments": [ - 1512 - ], - "declarations": [ - { - "constant": false, - "id": 1512, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "409:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 1511, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1525, - "src": "409:10:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1516, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1506, - "src": "442:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1513, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "431:10:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1525_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "431:23:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "409:45:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1520, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "482:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1517, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1512, - "src": "460:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1525", - "typeString": "contract Migrations" - } - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1504, - "src": "460:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "460:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1522, - "nodeType": "ExpressionStatement", - "src": "460:47:2" - } - ] - }, - "documentation": null, - "id": 1524, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1509, - "modifierName": { - "argumentTypes": null, - "id": 1508, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1492, - "src": "392:10:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "392:10:2" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1506, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 1524, - "src": "364:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "364:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "363:21:2" - }, - "returnParameters": { - "id": 1510, - "nodeType": "ParameterList", - "parameters": [], - "src": "403:0:2" - }, - "scope": 1525, - "src": "347:165:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1526, - "src": "34:480:2" - } - ], - "src": "0:515:2" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:46:34.745Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/abis/SafeMath.json b/src/abis/SafeMath.json deleted file mode 100644 index 40dd7a1..0000000 --- a/src/abis/SafeMath.json +++ /dev/null @@ -1,37448 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582063c0642bf828c28b18a14288bf4d7953f08d0295b9b7c126bc3475c94fa0c2ef0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582063c0642bf828c28b18a14288bf4d7953f08d0295b9b7c126bc3475c94fa0c2ef0029", - "sourceMap": "4701:2939:1:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "4701:2939:1:-;;;;;;;;", - "source": "\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * [EIP](https://eips.ethereum.org/EIPS/eip-165).\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 * [EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\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\n\npragma solidity ^0.5.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ncontract IERC721 is IERC165 {\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of NFTs in `owner`'s account.\n */\n function balanceOf(address owner) public view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the NFT specified by `tokenId`.\n */\n function ownerOf(uint256 tokenId) public view returns (address owner);\n\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * \n *\n * Requirements:\n * - `from`, `to` cannot be zero.\n * - `tokenId` must be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this\n * NFT by either `approve` or `setApproveForAll`.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public;\n /**\n * @dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\n * another (`to`).\n *\n * Requirements:\n * - If the caller is not `from`, it must be approved to move this NFT by\n * either `approve` or `setApproveForAll`.\n */\n function transferFrom(address from, address to, uint256 tokenId) public;\n function approve(address to, uint256 tokenId) public;\n function getApproved(uint256 tokenId) public view returns (address operator);\n\n function setApprovalForAll(address operator, bool _approved) public;\n function isApprovedForAll(address owner, address operator) public view returns (bool);\n\n\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Receiver {\n /**\n * @notice Handle the receipt of an NFT\n * @dev The ERC721 smart contract calls this function on the recipient\n * after a `safeTransfer`. This function MUST return the function selector,\n * otherwise the caller will revert the transaction. The selector to be\n * returned can be obtained as `this.onERC721Received.selector`. This\n * function MAY throw to revert and reject the transfer.\n * Note: the ERC721 contract address is always the message sender.\n * @param operator The address which called `safeTransferFrom` function\n * @param from The address which previously owned the token\n * @param tokenId The NFT identifier which is being transferred\n * @param data Additional data with no specified format\n * @return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)\n public returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\n\npragma solidity ^0.5.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, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\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\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 * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\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 * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (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) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts 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 * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts 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 * - 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// File: @openzeppelin/contracts/utils/Address.sol\n\npragma solidity ^0.5.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 * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\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 function isContract(address account) internal view returns (bool) {\n // This method relies in 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// File: @openzeppelin/contracts/drafts/Counters.sol\n\npragma solidity ^0.5.0;\n\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\n * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\n * directly accessed.\n */\nlibrary Counters {\n using SafeMath for uint256;\n\n struct Counter {\n // This variable should never be directly accessed by users of the library: interactions must be restricted to\n // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n // this feature: see https://github.com/ethereum/solidity/issues/4637\n uint256 _value; // default: 0\n }\n\n function current(Counter storage counter) internal view returns (uint256) {\n return counter._value;\n }\n\n function increment(Counter storage counter) internal {\n counter._value += 1;\n }\n\n function decrement(Counter storage counter) internal {\n counter._value = counter._value.sub(1);\n }\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\n\npragma solidity ^0.5.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 */\ncontract 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 () internal {\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) external view 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 {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n\n\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 ERC165, IERC721 {\n using SafeMath for uint256;\n using Address for address;\n using Counters for Counters.Counter;\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 token ID to owner\n mapping (uint256 => address) private _tokenOwner;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to number of owned token\n mapping (address => Counters.Counter) private _ownedTokensCount;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\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)')) == 0xe985e9c\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 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n constructor () public {\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner address to query the balance of\n * @return uint256 representing the amount owned by the passed address\n */\n function balanceOf(address owner) public view returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n\n return _ownedTokensCount[owner].current();\n }\n\n /**\n * @dev Gets the owner of the specified token ID.\n * @param tokenId uint256 ID of the token to query the owner of\n * @return address currently marked as the owner of the given token ID\n */\n function ownerOf(uint256 tokenId) public view returns (address) {\n address owner = _tokenOwner[tokenId];\n require(owner != address(0), \"ERC721: owner query for nonexistent token\");\n\n return owner;\n }\n\n /**\n * @dev Approves another address to transfer the given token ID\n * The zero address indicates there is no approved address.\n * There can only be one approved address per token at a given time.\n * Can only be called by the token owner or an approved operator.\n * @param to address to be approved for the given token ID\n * @param tokenId uint256 ID of the token to be approved\n */\n function approve(address to, uint256 tokenId) public {\n address owner = ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _tokenApprovals[tokenId] = to;\n emit Approval(owner, to, tokenId);\n }\n\n /**\n * @dev Gets the approved address for a token ID, or zero if no address set\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to query the approval of\n * @return address currently approved for the given token ID\n */\n function getApproved(uint256 tokenId) public view returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev Sets or unsets the approval of a given operator\n * An operator is allowed to transfer all tokens of the sender on their behalf.\n * @param to operator address to set the approval\n * @param approved representing the status of the approval to be set\n */\n function setApprovalForAll(address to, bool approved) public {\n require(to != msg.sender, \"ERC721: approve to caller\");\n\n _operatorApprovals[msg.sender][to] = approved;\n emit ApprovalForAll(msg.sender, to, approved);\n }\n\n /**\n * @dev Tells whether an operator is approved by a given owner.\n * @param owner owner address which you want to query the approval of\n * @param operator operator address which you want to query the approval of\n * @return bool whether the given operator is approved by the given owner\n */\n function isApprovedForAll(address owner, address operator) public view returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev Transfers the ownership of a given token ID to another address.\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible.\n * Requires the msg.sender to be the owner, approved, or operator.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function transferFrom(address from, address to, uint256 tokenId) public {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(msg.sender, tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transferFrom(from, to, tokenId);\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev Safely transfers the ownership of a given token ID to another address\n * If the target address is a contract, it must implement `onERC721Received`,\n * which is called upon a safe transfer, and return the magic value\n * `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\n * the transfer is reverted.\n * Requires the msg.sender to be the owner, approved, or operator\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes data to send along with a safe transfer check\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {\n transferFrom(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether the specified token exists.\n * @param tokenId uint256 ID of the token to query the existence of\n * @return bool whether the token exists\n */\n function _exists(uint256 tokenId) internal view returns (bool) {\n address owner = _tokenOwner[tokenId];\n return owner != address(0);\n }\n\n /**\n * @dev Returns whether the given spender can transfer a given token ID.\n * @param spender address of the spender to query\n * @param tokenId uint256 ID of the token to be transferred\n * @return bool whether the msg.sender is approved for the given token ID,\n * is an operator of the owner, or is the owner of the token\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to The address that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _tokenOwner[tokenId] = to;\n _ownedTokensCount[to].increment();\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n require(ownerOf(tokenId) == owner, \"ERC721: burn of token that is not own\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[owner].decrement();\n _tokenOwner[tokenId] = address(0);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(uint256 tokenId) internal {\n _burn(ownerOf(tokenId), tokenId);\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n require(ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _clearApproval(tokenId);\n\n _ownedTokensCount[from].decrement();\n _ownedTokensCount[to].increment();\n\n _tokenOwner[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Internal function to invoke `onERC721Received` on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * This function is deprecated.\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 internal returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n\n bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data);\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Private function to clear current approval of a given token ID.\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _clearApproval(uint256 tokenId) private {\n if (_tokenApprovals[tokenId] != address(0)) {\n _tokenApprovals[tokenId] = address(0);\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Enumerable is IERC721 {\n function totalSupply() public view returns (uint256);\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256 tokenId);\n\n function tokenByIndex(uint256 index) public view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title ERC-721 Non-Fungible Token with optional enumeration extension logic\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) private _ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) private _ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] private _allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) private _allTokensIndex;\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 Constructor function.\n */\n constructor () public {\n // register the supported interface to conform to ERC721Enumerable via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner.\n * @param owner address owning the tokens list to be accessed\n * @param index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {\n require(index < balanceOf(owner), \"ERC721Enumerable: owner index out of bounds\");\n return _ownedTokens[owner][index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract.\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return _allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens.\n * @param index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 index) public view returns (uint256) {\n require(index < totalSupply(), \"ERC721Enumerable: global index out of bounds\");\n return _allTokens[index];\n }\n\n /**\n * @dev Internal function to transfer ownership of a given token ID to another address.\n * As opposed to transferFrom, this imposes no restrictions on msg.sender.\n * @param from current owner of the token\n * @param to address to receive the ownership of the given token ID\n * @param tokenId uint256 ID of the token to be transferred\n */\n function _transferFrom(address from, address to, uint256 tokenId) internal {\n super._transferFrom(from, to, tokenId);\n\n _removeTokenFromOwnerEnumeration(from, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n }\n\n /**\n * @dev Internal function to mint a new token.\n * Reverts if the given token ID already exists.\n * @param to address the beneficiary that will own the minted token\n * @param tokenId uint256 ID of the token to be minted\n */\n function _mint(address to, uint256 tokenId) internal {\n super._mint(to, tokenId);\n\n _addTokenToOwnerEnumeration(to, tokenId);\n\n _addTokenToAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n _removeTokenFromOwnerEnumeration(owner, tokenId);\n // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund\n _ownedTokensIndex[tokenId] = 0;\n\n _removeTokenFromAllTokensEnumeration(tokenId);\n }\n\n /**\n * @dev Gets the list of token IDs of the requested owner.\n * @param owner address owning the tokens\n * @return uint256[] List of token IDs owned by the requested address\n */\n function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {\n return _ownedTokens[owner];\n }\n\n /**\n * @dev Private function to add a token to this extension's ownership-tracking data structures.\n * @param to address representing the new owner of the given token ID\n * @param tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {\n _ownedTokensIndex[tokenId] = _ownedTokens[to].length;\n _ownedTokens[to].push(tokenId);\n }\n\n /**\n * @dev Private function to add a token to this extension's token tracking data structures.\n * @param tokenId uint256 ID of the token to be added to the tokens list\n */\n function _addTokenToAllTokensEnumeration(uint256 tokenId) private {\n _allTokensIndex[tokenId] = _allTokens.length;\n _allTokens.push(tokenId);\n }\n\n /**\n * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\n * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\n * gas optimizations e.g. when performing a transfer operation (avoiding double writes).\n * This has O(1) time complexity, but alters the order of the _ownedTokens array.\n * @param from address representing the previous owner of the given token ID\n * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {\n // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _ownedTokens[from].length.sub(1);\n uint256 tokenIndex = _ownedTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary\n if (tokenIndex != lastTokenIndex) {\n uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];\n\n _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n }\n\n // This also deletes the contents at the last position of the array\n _ownedTokens[from].length--;\n\n // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by\n // lastTokenId, or just over the end of the array if the token was the last one).\n }\n\n /**\n * @dev Private function to remove a token from this extension's token tracking data structures.\n * This has O(1) time complexity, but alters the order of the _allTokens array.\n * @param tokenId uint256 ID of the token to be removed from the tokens list\n */\n function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {\n // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and\n // then delete the last slot (swap and pop).\n\n uint256 lastTokenIndex = _allTokens.length.sub(1);\n uint256 tokenIndex = _allTokensIndex[tokenId];\n\n // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so\n // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding\n // an 'if' statement (like in _removeTokenFromOwnerEnumeration)\n uint256 lastTokenId = _allTokens[lastTokenIndex];\n\n _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token\n _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index\n\n // This also deletes the contents at the last position of the array\n _allTokens.length--;\n _allTokensIndex[tokenId] = 0;\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\n\npragma solidity ^0.5.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 */\ncontract IERC721Metadata is IERC721 {\n function name() external view returns (string memory);\n function symbol() external view returns (string memory);\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol\n\npragma solidity ^0.5.0;\n\n\n\n\ncontract ERC721Metadata is ERC165, ERC721, IERC721Metadata {\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 /*\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 * @dev Constructor function\n */\n constructor (string memory name, string memory symbol) public {\n _name = name;\n _symbol = symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n }\n\n /**\n * @dev Gets the token name.\n * @return string representing the token name\n */\n function name() external view returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Gets the token symbol.\n * @return string representing the token symbol\n */\n function symbol() external view returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns an URI for a given token ID.\n * Throws if the token ID does not exist. May return an empty string.\n * @param tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 tokenId) external view returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n return _tokenURIs[tokenId];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token.\n * Reverts if the token ID does not exist.\n * @param tokenId uint256 ID of the token to set its URI\n * @param uri string URI to assign\n */\n function _setTokenURI(uint256 tokenId, string memory uri) internal {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = uri;\n }\n\n /**\n * @dev Internal function to burn a specific token.\n * Reverts if the token does not exist.\n * Deprecated, use _burn(uint256) instead.\n * @param owner owner of the token to burn\n * @param tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address owner, uint256 tokenId) internal {\n super._burn(owner, tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol\n\npragma solidity ^0.5.0;\n\n\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {\n constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {\n // solhint-disable-previous-line no-empty-blocks\n }\n}\n", - "sourcePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "ast": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "legacyAST": { - "absolutePath": "/Users/gregory/code/nft/src/contracts/ERC721Full.sol", - "exportedSymbols": { - "Address": [ - 289 - ], - "Counters": [ - 336 - ], - "ERC165": [ - 386 - ], - "ERC721": [ - 944 - ], - "ERC721Enumerable": [ - 1302 - ], - "ERC721Full": [ - 1468 - ], - "ERC721Metadata": [ - 1448 - ], - "IERC165": [ - 23 - ], - "IERC721": [ - 124 - ], - "IERC721Enumerable": [ - 969 - ], - "IERC721Metadata": [ - 1323 - ], - "IERC721Receiver": [ - 139 - ], - "SafeMath": [ - 271 - ] - }, - "id": 1469, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 15, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "61:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@dev Interface of the ERC165 standard, as defined in the\n[EIP](https://eips.ethereum.org/EIPS/eip-165).\n * Implementers can declare support of contract interfaces, which can then be\nqueried by others (`ERC165Checker`).\n * For an implementation, see `ERC165`.", - "fullyImplemented": false, - "id": 23, - "linearizedBaseContracts": [ - 23 - ], - "name": "IERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@dev Returns true if this contract implements the interface defined by\n`interfaceId`. See the corresponding\n[EIP section](https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified)\nto learn more about how these ids are created.\n * This function call must use less than 30 000 gas.", - "id": 22, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "766:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 16, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "765:20:1" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 22, - "src": "809:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 19, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:1" - }, - "scope": 23, - "src": "739:76:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "368:449:1" - }, - { - "id": 24, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "878:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 25, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 26, - "nodeType": "InheritanceSpecifier", - "src": "992:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Required interface of an ERC721 compliant contract.", - "fullyImplemented": false, - "id": 124, - "linearizedBaseContracts": [ - 124, - 23 - ], - "name": "IERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 34, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1021:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1021:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1043:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1043:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 34, - "src": "1063:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1063:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1020:67:1" - }, - "src": "1006:82:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1108:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 35, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1108:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "indexed": true, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1131:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1131:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": true, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "1157:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1107:74:1" - }, - "src": "1093:89:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 50, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1208:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1231:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 45, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1231:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 48, - "indexed": false, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "1257:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1257:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:64:1" - }, - "src": "1187:85:1" - }, - { - "body": null, - "documentation": "@dev Returns the number of NFTs in `owner`'s account.", - "id": 57, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 52, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1374:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1374:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1373:15:1" - }, - "returnParameters": { - "id": 56, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 55, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 57, - "src": "1410:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 54, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1409:17:1" - }, - "scope": 124, - "src": "1355:72:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Returns the owner of the NFT specified by `tokenId`.", - "id": 64, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1531:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 58, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1531:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1530:17:1" - }, - "returnParameters": { - "id": 63, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 62, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 64, - "src": "1569:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 61, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1569:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1568:15:1" - }, - "scope": 124, - "src": "1514:70:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * \n * Requirements:\n- `from`, `to` cannot be zero.\n- `tokenId` must be owned by `from`.\n- If the caller is not `from`, it must be have been allowed to move this\nNFT by either `approve` or `setApproveForAll`.", - "id": 73, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 71, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 66, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "1992:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1992:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 68, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2006:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 67, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 70, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "2018:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2018:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1991:43:1" - }, - "returnParameters": { - "id": 72, - "nodeType": "ParameterList", - "parameters": [], - "src": "2041:0:1" - }, - "scope": 124, - "src": "1966:76:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": "@dev Transfers a specific NFT (`tokenId`) from one account (`from`) to\nanother (`to`).\n * Requirements:\n- If the caller is not `from`, it must be approved to move this NFT by\neither `approve` or `setApproveForAll`.", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2339:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2339:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2353:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2353:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 79, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "2365:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2365:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2338:43:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [], - "src": "2388:0:1" - }, - "scope": 124, - "src": "2317:72:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 89, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2411:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 83, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2411:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 89, - "src": "2423:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 85, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2423:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2410:29:1" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [], - "src": "2446:0:1" - }, - "scope": 124, - "src": "2394:53:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 96, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 92, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 91, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2473:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2472:17:1" - }, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 94, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 96, - "src": "2511:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 93, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2511:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2510:18:1" - }, - "scope": 124, - "src": "2452:77:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 103, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 98, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2562:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 97, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2562:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 100, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 103, - "src": "2580:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 99, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2561:34:1" - }, - "returnParameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "2602:0:1" - }, - "scope": 124, - "src": "2535:68:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 112, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 108, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2634:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2634:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2649:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2649:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2633:33:1" - }, - "returnParameters": { - "id": 111, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 110, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 112, - "src": "2688:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 109, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2688:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2687:6:1" - }, - "scope": 124, - "src": "2608:86:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 123, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 114, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2727:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2741:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2741:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2753:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2753:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 123, - "src": "2770:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2770:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:62:1" - }, - "returnParameters": { - "id": 122, - "nodeType": "ParameterList", - "parameters": [], - "src": "2795:0:1" - }, - "scope": 124, - "src": "2701:95:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "972:1826:1" - }, - { - "id": 125, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "2867:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\n@dev Interface for any contract that wants to support safeTransfers\nfrom ERC721 asset contracts.", - "fullyImplemented": false, - "id": 139, - "linearizedBaseContracts": [ - 139 - ], - "name": "IERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\n@dev The ERC721 smart contract calls this function on the recipient\nafter a `safeTransfer`. This function MUST return the function selector,\notherwise the caller will revert the transaction. The selector to be\nreturned can be obtained as `this.onERC721Received.selector`. This\nfunction MAY throw to revert and reject the transfer.\nNote: the ERC721 contract address is always the message sender.\n@param operator The address which called `safeTransferFrom` function\n@param from The address which previously owned the token\n@param tokenId The NFT identifier which is being transferred\n@param data Additional data with no specified format\n@return bytes4 `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`", - "id": 138, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3960:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3960:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3978:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 131, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "3992:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3992:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 133, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4009:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4009:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3959:68:1" - }, - "returnParameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 138, - "src": "4048:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 135, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4048:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4047:8:1" - }, - "scope": 139, - "src": "3934:122:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "3045:1013:1" - }, - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "4112:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", - "fullyImplemented": true, - "id": 271, - "linearizedBaseContracts": [ - 271 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 164, - "nodeType": "Block", - "src": "5013:109:1", - "statements": [ - { - "assignments": [ - 150 - ], - "declarations": [ - { - "constant": false, - "id": 150, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5023:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5035:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 152, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "5039:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5023:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 156, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5058:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 157, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "5063:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5058:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:29:1", - "subdenomination": null, - "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": 155, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5050:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5050:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "5050:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "5114:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 148, - "id": 163, - "nodeType": "Return", - "src": "5107:8:1" - } - ] - }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 142, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4959:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4959:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 144, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "4970:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4970:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4958:22:1" - }, - "returnParameters": { - "id": 148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 147, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 165, - "src": "5004:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5004:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5003:9:1" - }, - "scope": 271, - "src": "4946:176:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 189, - "nodeType": "Block", - "src": "5453:112:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 175, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5471:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 176, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5476:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5471:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:32:1", - "subdenomination": null, - "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": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "5463:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5463:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 180, - "nodeType": "ExpressionStatement", - "src": "5463:49:1" - }, - { - "assignments": [ - 182 - ], - "declarations": [ - { - "constant": false, - "id": 182, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 189, - "src": "5522:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 181, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 186, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 183, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "5534:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 184, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "5538:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5534:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5522:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 187, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5557:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 173, - "id": 188, - "nodeType": "Return", - "src": "5550:8:1" - } - ] - }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 167, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5399:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5399:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 169, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5410:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5398:22:1" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 190, - "src": "5444:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5443:9:1" - }, - "scope": 271, - "src": "5386:179:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "5872:392:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6104:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6109:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6104:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 205, - "nodeType": "IfStatement", - "src": "6100:45:1", - "trueBody": { - "id": 204, - "nodeType": "Block", - "src": "6112:33:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 198, - "id": 203, - "nodeType": "Return", - "src": "6126:8:1" - } - ] - } - }, - { - "assignments": [ - 207 - ], - "declarations": [ - { - "constant": false, - "id": 207, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 223, - "src": "6155:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6155:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 208, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6167:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 209, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6171:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6167:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6155:17:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6190:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 214, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "6194:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 216, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "6199:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6190:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6202:35:1", - "subdenomination": null, - "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": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6182:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 220, - "nodeType": "ExpressionStatement", - "src": "6182:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 221, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 207, - "src": "6256:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 198, - "id": 222, - "nodeType": "Return", - "src": "6249:8:1" - } - ] - }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 192, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5818:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 194, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5829:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5817:22:1" - }, - "returnParameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 197, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "5863:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5863:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5862:9:1" - }, - "scope": 271, - "src": "5805:459:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 248, - "nodeType": "Block", - "src": "6786:259:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6870:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6874:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6870:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6877:28:1", - "subdenomination": null, - "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": 233, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "6862:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6862:44:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 239, - "nodeType": "ExpressionStatement", - "src": "6862:44:1" - }, - { - "assignments": [ - 241 - ], - "declarations": [ - { - "constant": false, - "id": 241, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 248, - "src": "6916:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 242, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "6928:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 243, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "6932:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6928:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6916:17:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 246, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 241, - "src": "7037:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 232, - "id": 247, - "nodeType": "Return", - "src": "7030:8:1" - } - ] - }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision 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\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6732:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6743:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6743:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6731:22:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 231, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 249, - "src": "6777:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 230, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6777:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6776:9:1" - }, - "scope": 271, - "src": "6719:326:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 269, - "nodeType": "Block", - "src": "7556:82:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 259, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7574:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7579:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7574:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7582:26:1", - "subdenomination": null, - "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": 258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "7566:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7566:43:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 264, - "nodeType": "ExpressionStatement", - "src": "7566:43:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 265, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7626:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 266, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 253, - "src": "7630:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7626:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 257, - "id": 268, - "nodeType": "Return", - "src": "7619:12:1" - } - ] - }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 270, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 254, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7502:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7502:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 253, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7513:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7513:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7501:22:1" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 256, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 270, - "src": "7547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7546:9:1" - }, - "scope": 271, - "src": "7489:149:1", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "4701:2939:1" - }, - { - "id": 272, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "7694:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@dev Collection of functions related to the address type,", - "fullyImplemented": true, - "id": 289, - "linearizedBaseContracts": [ - 289 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 287, - "nodeType": "Block", - "src": "8302:347:1", - "statements": [ - { - "assignments": [ - 280 - ], - "declarations": [ - { - "constant": false, - "id": 280, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 287, - "src": "8499:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8499:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 281, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "8499:12:1" - }, - { - "externalReferences": [ - { - "account": { - "declaration": 274, - "isOffset": false, - "isSlot": false, - "src": "8608:7:1", - "valueSize": 1 - } - }, - { - "size": { - "declaration": 280, - "isOffset": false, - "isSlot": false, - "src": "8588:4:1", - "valueSize": 1 - } - } - ], - "id": 282, - "nodeType": "InlineAssembly", - "operations": "{\n size := extcodesize(account)\n}", - "src": "8577:56:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 283, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "8634:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8641:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8634:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 278, - "id": 286, - "nodeType": "Return", - "src": "8627:15:1" - } - ] - }, - "documentation": "@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * > It is unsafe to assume that an address for which this function returns\nfalse is an externally-owned account (EOA) and not a contract.", - "id": 288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 274, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8256:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8256:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8255:17:1" - }, - "returnParameters": { - "id": 278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 277, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 288, - "src": "8296:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8296:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8295:6:1" - }, - "scope": 289, - "src": "8236:413:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "7788:863:1" - }, - { - "id": 290, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "8707:23:1" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Counters\n@author Matt Condon (@shrugs)\n@dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number\nof elements in a mapping, issuing ERC721 ids, or counting request ids.\n * Include with `using Counters for Counters.Counter;`\nSince it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath\noverflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never\ndirectly accessed.", - "fullyImplemented": true, - "id": 336, - "linearizedBaseContracts": [ - 336 - ], - "name": "Counters", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 293, - "libraryName": { - "contractScope": null, - "id": 291, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "9332:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "9326:27:1", - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9345:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "Counters.Counter", - "id": 296, - "members": [ - { - "constant": false, - "id": 295, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 296, - "src": "9698:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9698:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Counter", - "nodeType": "StructDefinition", - "scope": 336, - "src": "9359:374:1", - "visibility": "public" - }, - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "9813:38:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 303, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "9830:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9830:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 302, - "id": 305, - "nodeType": "Return", - "src": "9823:21:1" - } - ] - }, - "documentation": null, - "id": 307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "current", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 298, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9756:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 297, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9756:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9755:25:1" - }, - "returnParameters": { - "id": 302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "9804:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9803:9:1" - }, - "scope": 336, - "src": "9739:112:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 318, - "nodeType": "Block", - "src": "9910:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 309, - "src": "9920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "9920:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9938:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9920:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "9920:19:1" - } - ] - }, - "documentation": null, - "id": 319, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 309, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 319, - "src": "9876:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 308, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9876:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9875:25:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "9910:0:1" - }, - "scope": 336, - "src": "9857:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 334, - "nodeType": "Block", - "src": "10005:55:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 324, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10015:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 326, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10015:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10051:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 327, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "10032:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter storage pointer" - } - }, - "id": 328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "_value", - "nodeType": "MemberAccess", - "referencedDeclaration": 295, - "src": "10032:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "10032:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10032:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10015:38:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "10015:38:1" - } - ] - }, - "documentation": null, - "id": 335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decrement", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 322, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 321, - "name": "counter", - "nodeType": "VariableDeclaration", - "scope": 335, - "src": "9971:23:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - }, - "typeName": { - "contractScope": null, - "id": 320, - "name": "Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "9971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9970:25:1" - }, - "returnParameters": { - "id": 323, - "nodeType": "ParameterList", - "parameters": [], - "src": "10005:0:1" - }, - "scope": 336, - "src": "9952:108:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "9303:759:1" - }, - { - "id": 337, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "10123:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 338, - "name": "IERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 23, - "src": "10340:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC165_$23", - "typeString": "contract IERC165" - } - }, - "id": 339, - "nodeType": "InheritanceSpecifier", - "src": "10340:7:1" - } - ], - "contractDependencies": [ - 23 - ], - "contractKind": "contract", - "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", - "fullyImplemented": true, - "id": 386, - "linearizedBaseContracts": [ - 386, - 23 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 342, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10437:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 340, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10437:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10484:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 346, - "name": "_supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "10588:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 345, - "keyType": { - "id": 343, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "10596:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "10588:23:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 344, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10606:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 353, - "nodeType": "Block", - "src": "10671:193:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 350, - "name": "_INTERFACE_ID_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "10836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 349, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "10817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 352, - "nodeType": "ExpressionStatement", - "src": "10817:40:1" - } - ] - }, - "documentation": null, - "id": 354, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 347, - "nodeType": "ParameterList", - "parameters": [], - "src": "10659:2:1" - }, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [], - "src": "10671:0:1" - }, - "scope": 386, - "src": "10647:217:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 365, - "nodeType": "Block", - "src": "11090:57:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 361, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11107:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 363, - "indexExpression": { - "argumentTypes": null, - "id": 362, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "11128:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 360, - "id": 364, - "nodeType": "Return", - "src": "11100:40:1" - } - ] - }, - "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", - "id": 366, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11041:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 355, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11041:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11040:20:1" - }, - "returnParameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 359, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 366, - "src": "11084:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 358, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:1" - }, - "scope": 386, - "src": "11014:133:1", - "stateMutability": "view", - "superFunction": 22, - "visibility": "external" - }, - { - "body": { - "id": 384, - "nodeType": "Block", - "src": "11598:133:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 372, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11616:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11631:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "11616:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11643:30:1", - "subdenomination": null, - "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": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "11608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11608:66:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 377, - "nodeType": "ExpressionStatement", - "src": "11608:66:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 378, - "name": "_supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 346, - "src": "11684:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 380, - "indexExpression": { - "argumentTypes": null, - "id": 379, - "name": "interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "11705:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11684:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11720:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11684:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 383, - "nodeType": "ExpressionStatement", - "src": "11684:40:1" - } - ] - }, - "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", - "id": 385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 368, - "name": "interfaceId", - "nodeType": "VariableDeclaration", - "scope": 385, - "src": "11569:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 367, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "11569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11568:20:1" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "11598:0:1" - }, - "scope": 386, - "src": "11541:190:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "10321:1412:1" - }, - { - "id": 387, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "11793:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 388, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "11968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 389, - "nodeType": "InheritanceSpecifier", - "src": "11968:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 390, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "11976:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 391, - "nodeType": "InheritanceSpecifier", - "src": "11976:7:1" - } - ], - "contractDependencies": [ - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 944, - "linearizedBaseContracts": [ - 944, - 124, - 386, - 23 - ], - "name": "ERC721", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 394, - "libraryName": { - "contractScope": null, - "id": 392, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 271, - "src": "11996:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$271", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "11990:27:1", - "typeName": { - "id": 393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12009:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 397, - "libraryName": { - "contractScope": null, - "id": 395, - "name": "Address", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 289, - "src": "12028:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$289", - "typeString": "library Address" - } - }, - "nodeType": "UsingForDirective", - "src": "12022:26:1", - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12040:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "id": 400, - "libraryName": { - "contractScope": null, - "id": 398, - "name": "Counters", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 336, - "src": "12059:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Counters_$336", - "typeString": "library Counters" - } - }, - "nodeType": "UsingForDirective", - "src": "12053:36:1", - "typeName": { - "contractScope": null, - "id": 399, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12072:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - { - "constant": true, - "id": 403, - "name": "_ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12267:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 401, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "12267:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783135306237613032", - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12310:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_353073666_by_1", - "typeString": "int_const 353073666" - }, - "value": "0x150b7a02" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 407, - "name": "_tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12365:48:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 406, - "keyType": { - "id": 404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12374:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12365:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 405, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 411, - "name": "_tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12469:52:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 410, - "keyType": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12478:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12469:28:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 415, - "name": "_ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12579:63:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "typeName": { - "id": 414, - "keyType": { - "id": 412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12588:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12579:37:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter)" - }, - "valueType": { - "contractScope": null, - "id": 413, - "name": "Counters.Counter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 296, - "src": "12599:16:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage_ptr", - "typeString": "struct Counters.Counter" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 421, - "name": "_operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "12697: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": 420, - "keyType": { - "id": 416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12697:46:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 419, - "keyType": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12726:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12717:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 418, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12737:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 424, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "VariableDeclaration", - "scope": 944, - "src": "13644:57:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 422, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "13644:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13691:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "body": { - "id": 431, - "nodeType": "Block", - "src": "13730:134:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "_INTERFACE_ID_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 424, - "src": "13836:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 427, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "13817:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13817:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "13817:40:1" - } - ] - }, - "documentation": null, - "id": 432, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 425, - "nodeType": "ParameterList", - "parameters": [], - "src": "13720:2:1" - }, - "returnParameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [], - "src": "13730:0:1" - }, - "scope": 944, - "src": "13708:156:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 454, - "nodeType": "Block", - "src": "14132:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 440, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14150:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14167:1:1", - "subdenomination": null, - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14159:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14159:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14150:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14171:44:1", - "subdenomination": null, - "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": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14142:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14142:74:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 447, - "nodeType": "ExpressionStatement", - "src": "14142:74:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 448, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "14234:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 450, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 434, - "src": "14252:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14234:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 307, - "src": "14234:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$296_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 438, - "id": 453, - "nodeType": "Return", - "src": "14227:41:1" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner address to query the balance of\n@return uint256 representing the amount owned by the passed address", - "id": 455, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 435, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 434, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14087:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14087:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14086:15:1" - }, - "returnParameters": { - "id": 438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 437, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "14123:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14123:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14122:9:1" - }, - "scope": 944, - "src": "14068:207:1", - "stateMutability": "view", - "superFunction": 57, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "14558:159:1", - "statements": [ - { - "assignments": [ - 463 - ], - "declarations": [ - { - "constant": false, - "id": 463, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 479, - "src": "14568:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 462, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14568:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 464, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "14584:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 466, - "indexExpression": { - "argumentTypes": null, - "id": 465, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 457, - "src": "14596:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14584:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14568:36:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 469, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14622:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14639:1:1", - "subdenomination": null, - "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": 470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14631:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14622:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14643:43:1", - "subdenomination": null, - "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_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", - "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" - } - ], - "id": 468, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "14614:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14614:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 476, - "nodeType": "ExpressionStatement", - "src": "14614:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 477, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "14705:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 461, - "id": 478, - "nodeType": "Return", - "src": "14698:12:1" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID.\n@param tokenId uint256 ID of the token to query the owner of\n@return address currently marked as the owner of the given token ID", - "id": 480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14511:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:17:1" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 460, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "14549:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14549:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14548:9:1" - }, - "scope": 944, - "src": "14494:223:1", - "stateMutability": "view", - "superFunction": 64, - "visibility": "public" - }, - { - "body": { - "id": 526, - "nodeType": "Block", - "src": "15191:358:1", - "statements": [ - { - "assignments": [ - 488 - ], - "declarations": [ - { - "constant": false, - "id": 488, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 526, - "src": "15201:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15201:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 489, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "15217:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15217:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15201:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15251:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 495, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15257:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15251:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15264:35:1", - "subdenomination": null, - "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": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15243:57:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "15243:57:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15319:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15319:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 503, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15333:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15319:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 506, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15359:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 507, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "15366:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15366:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 505, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "15342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15319:58:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15391:58:1", - "subdenomination": null, - "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": 500, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15311:148:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 513, - "nodeType": "ExpressionStatement", - "src": "15311:148:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 514, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "15470:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 516, - "indexExpression": { - "argumentTypes": null, - "id": 515, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15470:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 517, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15497:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15470:29:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 519, - "nodeType": "ExpressionStatement", - "src": "15470:29:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 521, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 488, - "src": "15523:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "15530:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "15534: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": 520, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "15514:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15514:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 525, - "nodeType": "EmitStatement", - "src": "15509:33:1" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\nThe zero address indicates there is no approved address.\nThere can only be one approved address per token at a given time.\nCan only be called by the token owner or an approved operator.\n@param to address to be approved for the given token ID\n@param tokenId uint256 ID of the token to be approved", - "id": 527, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15155:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15155:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 527, - "src": "15167:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15167:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15154:29:1" - }, - "returnParameters": { - "id": 486, - "nodeType": "ParameterList", - "parameters": [], - "src": "15191:0:1" - }, - "scope": 944, - "src": "15138:411:1", - "stateMutability": "nonpayable", - "superFunction": 89, - "visibility": "public" - }, - { - "body": { - "id": 545, - "nodeType": "Block", - "src": "15902:132:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "15928:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 535, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "15920:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15920:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:46:1", - "subdenomination": null, - "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": 534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "15912:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15912:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 540, - "nodeType": "ExpressionStatement", - "src": "15912:73:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 541, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "16003:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "id": 542, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "16019:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16003:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 533, - "id": 544, - "nodeType": "Return", - "src": "15996:31:1" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to query the approval of\n@return address currently approved for the given token ID", - "id": 546, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 529, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15855:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15855:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15854:17:1" - }, - "returnParameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 532, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "15893:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15893:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15892:9:1" - }, - "scope": 944, - "src": "15834:200:1", - "stateMutability": "view", - "superFunction": 96, - "visibility": "public" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "16388:182:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 554, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16406:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16412:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16412:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16406:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", - "id": 558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16424:27:1", - "subdenomination": null, - "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": 553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "16398:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16398:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "ExpressionStatement", - "src": "16398:54:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16463:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 565, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16482:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16482:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16463:30:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 564, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16494:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16463:34:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 567, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16500:8:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16463:45:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 569, - "nodeType": "ExpressionStatement", - "src": "16463:45:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 571, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "16538:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16538:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "16550:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "16554: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": 570, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16523:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 576, - "nodeType": "EmitStatement", - "src": "16518:45:1" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\nAn operator is allowed to transfer all tokens of the sender on their behalf.\n@param to operator address to set the approval\n@param approved representing the status of the approval to be set", - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 551, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 548, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16354:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16354:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 550, - "name": "approved", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "16366:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 549, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16366:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16353:27:1" - }, - "returnParameters": { - "id": 552, - "nodeType": "ParameterList", - "parameters": [], - "src": "16388:0:1" - }, - "scope": 944, - "src": "16327:243:1", - "stateMutability": "nonpayable", - "superFunction": 103, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "16978:59:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 587, - "name": "_operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "16995:18:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 589, - "indexExpression": { - "argumentTypes": null, - "id": 588, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "17014:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:25:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 591, - "indexExpression": { - "argumentTypes": null, - "id": 590, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "17021:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16995:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 586, - "id": 592, - "nodeType": "Return", - "src": "16988:42:1" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner.\n@param owner owner address which you want to query the approval of\n@param operator operator address which you want to query the approval of\n@return bool whether the given operator is approved by the given owner", - "id": 594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 580, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16918:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16918:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 582, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16933:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16933:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16917:33:1" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 585, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "16972:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 584, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16972:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16971:6:1" - }, - "scope": 944, - "src": "16892:145:1", - "stateMutability": "view", - "superFunction": 112, - "visibility": "public" - }, - { - "body": { - "id": 618, - "nodeType": "Block", - "src": "17546:213:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 605, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "17635:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17635:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 607, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17647:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 604, - "name": "_isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "17616:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17616:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17657:51:1", - "subdenomination": null, - "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": 603, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "17608:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17608:101:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 611, - "nodeType": "ExpressionStatement", - "src": "17608:101:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 613, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "17734:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 614, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "17740:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "17744: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": 612, - "name": "_transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "17720:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17720:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 617, - "nodeType": "ExpressionStatement", - "src": "17720:32:1" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address.\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible.\nRequires the msg.sender to be the owner, approved, or operator.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17496:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17496:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17510:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17510:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 619, - "src": "17522:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17522:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17495:43:1" - }, - "returnParameters": { - "id": 602, - "nodeType": "ParameterList", - "parameters": [], - "src": "17546:0:1" - }, - "scope": 944, - "src": "17474:285:1", - "stateMutability": "nonpayable", - "superFunction": 82, - "visibility": "public" - }, - { - "body": { - "id": 635, - "nodeType": "Block", - "src": "18468:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 629, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 621, - "src": "18495:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 630, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "18501:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 631, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "18505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18514:2:1", - "subdenomination": null, - "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": 628, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 636, - 664 - ], - "referencedDeclaration": 664, - "src": "18478: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": 633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18478:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 634, - "nodeType": "ExpressionStatement", - "src": "18478:39:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 636, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 621, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18418:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18418:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 623, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18432:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18432:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 625, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "18444:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18417:43:1" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "18468:0:1" - }, - "scope": 944, - "src": "18392:132:1", - "stateMutability": "nonpayable", - "superFunction": 73, - "visibility": "public" - }, - { - "body": { - "id": 663, - "nodeType": "Block", - "src": "19325:169:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 648, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19348:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19354:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 650, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19358: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": 647, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 619 - ], - "referencedDeclaration": 619, - "src": "19335:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19335:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "19335:31:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 655, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 638, - "src": "19407:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 656, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 640, - "src": "19413:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 657, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "19417:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 658, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "19426: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": 654, - "name": "_checkOnERC721Received", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "19384: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": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19384:48:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19434:52:1", - "subdenomination": null, - "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": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "19376:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19376:111:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "19376:111:1" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\nIf the target address is a contract, it must implement `onERC721Received`,\nwhich is called upon a safe transfer, and return the magic value\n`bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`; otherwise,\nthe transfer is reverted.\nRequires the msg.sender to be the owner, approved, or operator\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred\n@param _data bytes data to send along with a safe transfer check", - "id": 664, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 638, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19255:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19255:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 640, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19269:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19269:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 642, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19281:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19281:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 664, - "src": "19298:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 643, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19298:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19254:63:1" - }, - "returnParameters": { - "id": 646, - "nodeType": "ParameterList", - "parameters": [], - "src": "19325:0:1" - }, - "scope": 944, - "src": "19229:265:1", - "stateMutability": "nonpayable", - "superFunction": 123, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "19752:89:1", - "statements": [ - { - "assignments": [ - 672 - ], - "declarations": [ - { - "constant": false, - "id": 672, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "19762:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19762:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 676, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 673, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "19778:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 675, - "indexExpression": { - "argumentTypes": null, - "id": 674, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "19790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19778:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19762:36:1" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 677, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "19815:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19832:1:1", - "subdenomination": null, - "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": 678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19824:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19824:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19815:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 670, - "id": 682, - "nodeType": "Return", - "src": "19808:26:1" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists.\n@param tokenId uint256 ID of the token to query the existence of\n@return bool whether the token exists", - "id": 684, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 666, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19706:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19705:17:1" - }, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "19746:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19746:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19745:6:1" - }, - "scope": 944, - "src": "19689:152:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 722, - "nodeType": "Block", - "src": "20293:238:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 695, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20319:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 694, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20311:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20311:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20329:46:1", - "subdenomination": null, - "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": 693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20303:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20303:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 699, - "nodeType": "ExpressionStatement", - "src": "20303:73:1" - }, - { - "assignments": [ - 701 - ], - "declarations": [ - { - "constant": false, - "id": 701, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 722, - "src": "20386:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20386:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 705, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 703, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20410:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 702, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "20402:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20402:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20386:32:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 706, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20436:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 707, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20447:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20436:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 710, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "20468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 709, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 546 - ], - "referencedDeclaration": 546, - "src": "20456:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20456:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 712, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20480:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20456:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:51:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 716, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 701, - "src": "20508:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 717, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "20515:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 715, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 594 - ], - "referencedDeclaration": 594, - "src": "20491:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20491:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20436:87:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 720, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20435:89:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 692, - "id": 721, - "nodeType": "Return", - "src": "20428:96:1" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID.\n@param spender address of the spender to query\n@param tokenId uint256 ID of the token to be transferred\n@return bool whether the msg.sender is approved for the given token ID,\nis an operator of the owner, or is the owner of the token", - "id": 723, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20230:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20230:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20247:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 687, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20247:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20229:34:1" - }, - "returnParameters": { - "id": 692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 723, - "src": "20287:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20287:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20286:6:1" - }, - "scope": 944, - "src": "20202:329:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 767, - "nodeType": "Block", - "src": "20829:274:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 731, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "20847:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20861:1:1", - "subdenomination": null, - "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": 732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20853:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20853:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20847:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20865:34:1", - "subdenomination": null, - "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": 730, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20839:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20839:61:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "20839:61:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20918:17:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 741, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20927:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 740, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "20919:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20919:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", - "id": 744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20937:30:1", - "subdenomination": null, - "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": 739, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "20910:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20910:58:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 746, - "nodeType": "ExpressionStatement", - "src": "20910:58:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 747, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "20979:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 749, - "indexExpression": { - "argumentTypes": null, - "id": 748, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "20991:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 750, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21002:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20979:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 752, - "nodeType": "ExpressionStatement", - "src": "20979:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 753, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21014:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 755, - "indexExpression": { - "argumentTypes": null, - "id": 754, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21032:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21014:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "21014:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21014:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 758, - "nodeType": "ExpressionStatement", - "src": "21014:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21080:1:1", - "subdenomination": null, - "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": 760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21072:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 763, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 725, - "src": "21084:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 764, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 727, - "src": "21088: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": 759, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21063:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21063:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 766, - "nodeType": "EmitStatement", - "src": "21058:38:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to The address that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 768, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 728, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 725, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20791:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 724, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20791:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 727, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 768, - "src": "20803:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20790:29:1" - }, - "returnParameters": { - "id": 729, - "nodeType": "ParameterList", - "parameters": [], - "src": "20829:0:1" - }, - "scope": 944, - "src": "20776:327:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 810, - "nodeType": "Block", - "src": "21434:268:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 776, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21452:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21452:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 779, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21472:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21452:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a206275726e206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21479:39:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - }, - "value": "ERC721: burn of token that is not own" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d9af5b321f427d3820b5fc07b432b1ddf1bb6411d5d926d9de9773fd616ab5ee", - "typeString": "literal_string \"ERC721: burn of token that is not own\"" - } - ], - "id": 775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "21444:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21444:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 783, - "nodeType": "ExpressionStatement", - "src": "21444:75:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 785, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21545:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 784, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "21530:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21530:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 787, - "nodeType": "ExpressionStatement", - "src": "21530:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 788, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "21564:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 790, - "indexExpression": { - "argumentTypes": null, - "id": 789, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21582:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21564:24:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 791, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "21564:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21564:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 793, - "nodeType": "ExpressionStatement", - "src": "21564:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 794, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "21610:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 796, - "indexExpression": { - "argumentTypes": null, - "id": 795, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21622:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21610:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21641:1:1", - "subdenomination": null, - "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": 797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21633:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21633:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "21610:33:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 801, - "nodeType": "ExpressionStatement", - "src": "21610:33:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 803, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "21668:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 805, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21683:1:1", - "subdenomination": null, - "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": 804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21675:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21675:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 807, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "21687: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": 802, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "21659:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21659:36:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "EmitStatement", - "src": "21654:41:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 811, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 770, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21393:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21393:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 772, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 811, - "src": "21408:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21408:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21392:32:1" - }, - "returnParameters": { - "id": 774, - "nodeType": "ParameterList", - "parameters": [], - "src": "21434:0:1" - }, - "scope": 944, - "src": "21378:324:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 823, - "nodeType": "Block", - "src": "21924:49:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 818, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21948:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 817, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "21940:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 820, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 813, - "src": "21958:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 816, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 811, - 824 - ], - "referencedDeclaration": 811, - "src": "21934:5:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21934:32:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "21934:32:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\n@param tokenId uint256 ID of the token being burned", - "id": 824, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 813, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 824, - "src": "21898:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21897:17:1" - }, - "returnParameters": { - "id": 815, - "nodeType": "ParameterList", - "parameters": [], - "src": "21924:0:1" - }, - "scope": 944, - "src": "21883:90:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "22423:372:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 835, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22449:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 834, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 480 - ], - "referencedDeclaration": 480, - "src": "22441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22441:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 837, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22461:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22441:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", - "id": 839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22467:43:1", - "subdenomination": null, - "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": 833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22433:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22433:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 841, - "nodeType": "ExpressionStatement", - "src": "22433:78:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 843, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22529:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22543:1:1", - "subdenomination": null, - "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": 844, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22535:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22535:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "22529:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", - "id": 848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22547:38:1", - "subdenomination": null, - "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": 842, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "22521:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22521:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 850, - "nodeType": "ExpressionStatement", - "src": "22521:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 852, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 851, - "name": "_clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 943, - "src": "22597:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22597:23:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 854, - "nodeType": "ExpressionStatement", - "src": "22597:23:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 855, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22631:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 857, - "indexExpression": { - "argumentTypes": null, - "id": 856, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22649:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22631:23:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "decrement", - "nodeType": "MemberAccess", - "referencedDeclaration": 335, - "src": "22631:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22631:35:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 860, - "nodeType": "ExpressionStatement", - "src": "22631:35:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 861, - "name": "_ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "22676:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Counter_$296_storage_$", - "typeString": "mapping(address => struct Counters.Counter storage ref)" - } - }, - "id": 863, - "indexExpression": { - "argumentTypes": null, - "id": 862, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22694:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22676:21:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Counter_$296_storage", - "typeString": "struct Counters.Counter storage ref" - } - }, - "id": 864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "increment", - "nodeType": "MemberAccess", - "referencedDeclaration": 319, - "src": "22676:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$296_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$296_storage_ptr_$", - "typeString": "function (struct Counters.Counter storage pointer)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22676:33:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 866, - "nodeType": "ExpressionStatement", - "src": "22676:33:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 867, - "name": "_tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "22720:11:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 869, - "indexExpression": { - "argumentTypes": null, - "id": 868, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22732:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "22720:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 870, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22743:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22720:25:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 872, - "nodeType": "ExpressionStatement", - "src": "22720:25:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 874, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "22770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 875, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 828, - "src": "22776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 876, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "22780: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": 873, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "22761:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22761:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "22756:32:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 826, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22371:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22371:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 828, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22385:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22385:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 830, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "22397:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 829, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22397:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22370:43:1" - }, - "returnParameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "22423:0:1" - }, - "scope": 944, - "src": "22348:447:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 919, - "nodeType": "Block", - "src": "23499:216:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "23513:16:1", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 893, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23514:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 288, - "src": "23514:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23514:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 900, - "nodeType": "IfStatement", - "src": "23509:58:1", - "trueBody": { - "id": 899, - "nodeType": "Block", - "src": "23531:36:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 892, - "id": 898, - "nodeType": "Return", - "src": "23545:11:1" - } - ] - } - }, - { - "assignments": [ - 902 - ], - "declarations": [ - { - "constant": false, - "id": 902, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 919, - "src": "23577:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 901, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "23577:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 913, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 907, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "23630:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23630:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 909, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 882, - "src": "23642:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 910, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "23648:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 911, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "23657: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" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 884, - "src": "23609:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "IERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "23593:15:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$139_$", - "typeString": "type(contract IERC721Receiver)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:19:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Receiver_$139", - "typeString": "contract IERC721Receiver" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 138, - "src": "23593: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": 912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23593:70:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23577:86:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 914, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 902, - "src": "23681:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 915, - "name": "_ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "23691:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "23681:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 917, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23680:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 892, - "id": 918, - "nodeType": "Return", - "src": "23673:35:1" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address.\nThe call is not executed if the target address is not a contract.\n * This function is deprecated.\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": 920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOnERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 882, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23400:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23400:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23414:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 883, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23414:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 886, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23426:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23426:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 888, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23443:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 887, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "23443:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23399:63:1" - }, - "returnParameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 891, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 920, - "src": "23489:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 890, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23489:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23488:6:1" - }, - "scope": 944, - "src": "23368:347:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 942, - "nodeType": "Block", - "src": "23926:122:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 925, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23940:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 927, - "indexExpression": { - "argumentTypes": null, - "id": 926, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "23956:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23940:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:1:1", - "subdenomination": null, - "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": 928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23968:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23968:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23940:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 941, - "nodeType": "IfStatement", - "src": "23936:106:1", - "trueBody": { - "id": 940, - "nodeType": "Block", - "src": "23980:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 932, - "name": "_tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "23994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 934, - "indexExpression": { - "argumentTypes": null, - "id": 933, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "24010:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "23994:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24029:1:1", - "subdenomination": null, - "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": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24021:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24021:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "23994:37:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 939, - "nodeType": "ExpressionStatement", - "src": "23994:37:1" - } - ] - } - } - ] - }, - "documentation": "@dev Private function to clear current approval of a given token ID.\n@param tokenId uint256 ID of the token to be transferred", - "id": 943, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 922, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 943, - "src": "23901:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23901:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23900:17:1" - }, - "returnParameters": { - "id": 924, - "nodeType": "ParameterList", - "parameters": [], - "src": "23926:0:1" - }, - "scope": 944, - "src": "23877:171:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "11949:12101:1" - }, - { - "id": 945, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24121:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 946, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "24314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 947, - "nodeType": "InheritanceSpecifier", - "src": "24314:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 969, - "linearizedBaseContracts": [ - 969, - 124, - 23 - ], - "name": "IERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 948, - "nodeType": "ParameterList", - "parameters": [], - "src": "24348:2:1" - }, - "returnParameters": { - "id": 951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 950, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 952, - "src": "24372:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24371:9:1" - }, - "scope": 969, - "src": "24328:53:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 961, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 954, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24415:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 953, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24415:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 956, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24430:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 955, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24430:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24414:30:1" - }, - "returnParameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 961, - "src": "24466:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24466:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24465:17:1" - }, - "scope": 969, - "src": "24386:97:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 968, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 963, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24511:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24511:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24510:15:1" - }, - "returnParameters": { - "id": 967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 966, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "24547:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 965, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24547:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24546:9:1" - }, - "scope": 969, - "src": "24489:67:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "24284:274:1" - }, - { - "id": 970, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "24628:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 971, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "24823:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 972, - "nodeType": "InheritanceSpecifier", - "src": "24823:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 973, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "24831:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 974, - "nodeType": "InheritanceSpecifier", - "src": "24831:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 975, - "name": "IERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 969, - "src": "24839:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Enumerable_$969", - "typeString": "contract IERC721Enumerable" - } - }, - "id": 976, - "nodeType": "InheritanceSpecifier", - "src": "24839:17:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token with optional enumeration extension logic\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1302, - "linearizedBaseContracts": [ - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Enumerable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 981, - "name": "_ownedTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "24916:50:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "typeName": { - "id": 980, - "keyType": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24924:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "24916:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[])" - }, - "valueType": { - "baseType": { - "id": 978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24935:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 979, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24935:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 985, - "name": "_ownedTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25036:53:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 984, - "keyType": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25044:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25036:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25055:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 988, - "name": "_allTokens", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25150:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25150:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 987, - "length": null, - "nodeType": "ArrayTypeName", - "src": "25150:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 992, - "name": "_allTokensIndex", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25249:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "typeName": { - "id": 991, - "keyType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "25249:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueType": { - "id": 990, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25268:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 995, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "VariableDeclaration", - "scope": 1302, - "src": "25605:68:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 993, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "25605:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783738306539643633", - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25663:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2014223715_by_1", - "typeString": "int_const 2014223715" - }, - "value": "0x780e9d63" - }, - "visibility": "private" - }, - { - "body": { - "id": 1002, - "nodeType": "Block", - "src": "25752:154:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 999, - "name": "_INTERFACE_ID_ERC721_ENUMERABLE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "25867:31:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 998, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "25848:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25848:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "25848:51:1" - } - ] - }, - "documentation": "@dev Constructor function.", - "id": 1003, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 996, - "nodeType": "ParameterList", - "parameters": [], - "src": "25742:2:1" - }, - "returnParameters": { - "id": 997, - "nodeType": "ParameterList", - "parameters": [], - "src": "25752:0:1" - }, - "scope": 1302, - "src": "25730:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "26369:140:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1013, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26387:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26405:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1014, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 455 - ], - "referencedDeclaration": 455, - "src": "26395:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26395:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26387:24:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a206f776e657220696e646578206f7574206f6620626f756e6473", - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26413:45:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - }, - "value": "ERC721Enumerable: owner index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1d7f5dcf03a65f41ee49b0ab593e3851cfbe3fd7da53b6cf4eddd83c7df5734c", - "typeString": "literal_string \"ERC721Enumerable: owner index out of bounds\"" - } - ], - "id": 1012, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "26379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26379:80:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1020, - "nodeType": "ExpressionStatement", - "src": "26379:80:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "26476:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1023, - "indexExpression": { - "argumentTypes": null, - "id": 1022, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1005, - "src": "26489:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1025, - "indexExpression": { - "argumentTypes": null, - "id": 1024, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "26496:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26476:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1011, - "id": 1026, - "nodeType": "Return", - "src": "26469:33:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of the tokens list of the requested owner.\n@param owner address owning the tokens list to be accessed\n@param index uint256 representing the index to be accessed of the requested tokens list\n@return uint256 token ID at the given index of the tokens list owned by the requested address", - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenOfOwnerByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26309:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1004, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26309:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1007, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26324:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1006, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26324:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26308:30:1" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1010, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "26360:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1009, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26360:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26359:9:1" - }, - "scope": 1302, - "src": "26280:229:1", - "stateMutability": "view", - "superFunction": 961, - "visibility": "public" - }, - { - "body": { - "id": 1036, - "nodeType": "Block", - "src": "26715:41:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1033, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "26732:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26732:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1032, - "id": 1035, - "nodeType": "Return", - "src": "26725:24:1" - } - ] - }, - "documentation": "@dev Gets the total amount of tokens stored by the contract.\n@return uint256 representing the total amount of tokens", - "id": 1037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1029, - "nodeType": "ParameterList", - "parameters": [], - "src": "26682:2:1" - }, - "returnParameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1037, - "src": "26706:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1030, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26706:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26705:9:1" - }, - "scope": 1302, - "src": "26662:94:1", - "stateMutability": "view", - "superFunction": 952, - "visibility": "public" - }, - { - "body": { - "id": 1056, - "nodeType": "Block", - "src": "27161:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1045, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27179:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1046, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1037 - ], - "referencedDeclaration": 1037, - "src": "27187:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27187:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27179:21:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "455243373231456e756d657261626c653a20676c6f62616c20696e646578206f7574206f6620626f756e6473", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27202:46:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - }, - "value": "ERC721Enumerable: global index out of bounds" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d269a4e9f5820dcdb69ea21f528512eb9b927c8d846d48aa51c9219f461d4dcc", - "typeString": "literal_string \"ERC721Enumerable: global index out of bounds\"" - } - ], - "id": 1044, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "27171:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27171:78:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "27171:78:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1052, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "27266:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1054, - "indexExpression": { - "argumentTypes": null, - "id": 1053, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1039, - "src": "27277:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27266:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1043, - "id": 1055, - "nodeType": "Return", - "src": "27259:24:1" - } - ] - }, - "documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts if the index is greater or equal to the total number of tokens.\n@param index uint256 representing the index to be accessed of the tokens list\n@return uint256 token ID at the given index of the tokens list", - "id": 1057, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenByIndex", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1039, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27116:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27116:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27115:15:1" - }, - "returnParameters": { - "id": 1043, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1042, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1057, - "src": "27152:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27152:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27151:9:1" - }, - "scope": 1302, - "src": "27094:196:1", - "stateMutability": "view", - "superFunction": 968, - "visibility": "public" - }, - { - "body": { - "id": 1084, - "nodeType": "Block", - "src": "27740:164:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1069, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27770:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27776:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1071, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27780: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" - } - ], - "expression": { - "argumentTypes": null, - "id": 1066, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "27750:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 880, - "src": "27750:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27750:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1073, - "nodeType": "ExpressionStatement", - "src": "27750:38:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1075, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "27832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1076, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27838:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1074, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "27799:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27799:47:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1078, - "nodeType": "ExpressionStatement", - "src": "27799:47:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1080, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "27885:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1081, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "27889:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1079, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "27857:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27857:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1083, - "nodeType": "ExpressionStatement", - "src": "27857:40:1" - } - ] - }, - "documentation": "@dev Internal function to transfer ownership of a given token ID to another address.\nAs opposed to transferFrom, this imposes no restrictions on msg.sender.\n@param from current owner of the token\n@param to address to receive the ownership of the given token ID\n@param tokenId uint256 ID of the token to be transferred", - "id": 1085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1059, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27688:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27688:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1061, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27702:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27702:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1063, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "27714:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "27714:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27687:43:1" - }, - "returnParameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "27740:0:1" - }, - "scope": 1302, - "src": "27665:239:1", - "stateMutability": "nonpayable", - "superFunction": 880, - "visibility": "internal" - }, - { - "body": { - "id": 1108, - "nodeType": "Block", - "src": "28214:143:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28236:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1096, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28240:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1092, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28224:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 768, - "src": "28224:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28224:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1098, - "nodeType": "ExpressionStatement", - "src": "28224:24:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1100, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "28287:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1101, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28291:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1099, - "name": "_addTokenToOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "28259:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28259:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1103, - "nodeType": "ExpressionStatement", - "src": "28259:40:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1105, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "28342:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1104, - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "28310:31:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28310:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "28310:40:1" - } - ] - }, - "documentation": "@dev Internal function to mint a new token.\nReverts if the given token ID already exists.\n@param to address the beneficiary that will own the minted token\n@param tokenId uint256 ID of the token to be minted", - "id": 1109, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28176:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28176:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1109, - "src": "28188:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28188:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28175:29:1" - }, - "returnParameters": { - "id": 1091, - "nodeType": "ParameterList", - "parameters": [], - "src": "28214:0:1" - }, - "scope": 1302, - "src": "28161:196:1", - "stateMutability": "nonpayable", - "superFunction": 768, - "visibility": "internal" - }, - { - "body": { - "id": 1138, - "nodeType": "Block", - "src": "28688:308:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1119, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28710:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28717:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1572, - "src": "28698:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Enumerable_$1302", - "typeString": "contract super ERC721Enumerable" - } - }, - "id": 1118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "28698:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28698:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1122, - "nodeType": "ExpressionStatement", - "src": "28698:27:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1124, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "28769:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1125, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28776:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1123, - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "28736:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28736:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "ExpressionStatement", - "src": "28736:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1128, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "28903:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1130, - "indexExpression": { - "argumentTypes": null, - "id": 1129, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28921:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28903:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28932:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28903:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "28903:30:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1135, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "28981:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1134, - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "28944:36:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28944:45:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1137, - "nodeType": "ExpressionStatement", - "src": "28944:45:1" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned", - "id": 1139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1111, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28647:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28647:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1113, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "28662:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28662:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28646:32:1" - }, - "returnParameters": { - "id": 1115, - "nodeType": "ParameterList", - "parameters": [], - "src": "28688:0:1" - }, - "scope": 1302, - "src": "28632:364:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "29282:43:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1147, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29299:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1149, - "indexExpression": { - "argumentTypes": null, - "id": 1148, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "29312:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29299:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 1146, - "id": 1150, - "nodeType": "Return", - "src": "29292:26:1" - } - ] - }, - "documentation": "@dev Gets the list of token IDs of the requested owner.\n@param owner address owning the tokens\n@return uint256[] List of token IDs owned by the requested address", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tokensOfOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29225:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29225:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29224:15:1" - }, - "returnParameters": { - "id": 1146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1145, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "29263:17:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29263:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1144, - "length": null, - "nodeType": "ArrayTypeName", - "src": "29263:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29262:19:1" - }, - "scope": 1302, - "src": "29201:124:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1175, - "nodeType": "Block", - "src": "29693:109:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1159, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "29703:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1161, - "indexExpression": { - "argumentTypes": null, - "id": 1160, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29703:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1162, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29732:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1164, - "indexExpression": { - "argumentTypes": null, - "id": 1163, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29745:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29732:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29732:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29703:52:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1167, - "nodeType": "ExpressionStatement", - "src": "29703:52:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1172, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "29787:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1168, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "29765:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1170, - "indexExpression": { - "argumentTypes": null, - "id": 1169, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "29778:2:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29765:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29765:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29765:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1174, - "nodeType": "ExpressionStatement", - "src": "29765:30:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's ownership-tracking data structures.\n@param to address representing the new owner of the given token ID\n@param tokenId uint256 ID of the token to be added to the tokens list of the given address", - "id": 1176, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29656:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29656:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1176, - "src": "29668:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29668:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29655:29:1" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "29693:0:1" - }, - "scope": 1302, - "src": "29619:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1194, - "nodeType": "Block", - "src": "30063:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1181, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "30073:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1183, - "indexExpression": { - "argumentTypes": null, - "id": 1182, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30089:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "30073:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30100:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30100:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30073:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "30073:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1191, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "30143:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1188, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "30127:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "30127:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30127:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1193, - "nodeType": "ExpressionStatement", - "src": "30127:24:1" - } - ] - }, - "documentation": "@dev Private function to add a token to this extension's token tracking data structures.\n@param tokenId uint256 ID of the token to be added to the tokens list", - "id": 1195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_addTokenToAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1178, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1195, - "src": "30038:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30038:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30037:17:1" - }, - "returnParameters": { - "id": 1180, - "nodeType": "ParameterList", - "parameters": [], - "src": "30063:0:1" - }, - "scope": 1302, - "src": "29997:161:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1251, - "nodeType": "Block", - "src": "30854:1047:1", - "statements": [ - { - "assignments": [ - 1203 - ], - "declarations": [ - { - "constant": false, - "id": 1203, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31035:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31035:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31090:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31060:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1206, - "indexExpression": { - "argumentTypes": null, - "id": 1205, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31073:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31060:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "31060:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31060:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31035:57:1" - }, - { - "assignments": [ - 1213 - ], - "declarations": [ - { - "constant": false, - "id": 1213, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "31102:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31102:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1217, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1214, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31123:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1216, - "indexExpression": { - "argumentTypes": null, - "id": 1215, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1199, - "src": "31141:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31123:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31102:47:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1218, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31253:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1219, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31267:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31253:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1244, - "nodeType": "IfStatement", - "src": "31249:323:1", - "trueBody": { - "id": 1243, - "nodeType": "Block", - "src": "31283:289:1", - "statements": [ - { - "assignments": [ - 1222 - ], - "declarations": [ - { - "constant": false, - "id": 1222, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "31297:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1228, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1223, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31319:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1225, - "indexExpression": { - "argumentTypes": null, - "id": 1224, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31332:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1227, - "indexExpression": { - "argumentTypes": null, - "id": 1226, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "31338:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31319:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31297:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31368:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1232, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31381:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31368:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1231, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31387:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31368:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1234, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31401:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31368:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1236, - "nodeType": "ExpressionStatement", - "src": "31368:44:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1237, - "name": "_ownedTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "31484:17:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1239, - "indexExpression": { - "argumentTypes": null, - "id": 1238, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "31502:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "31484:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1240, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1213, - "src": "31517:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31484:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1242, - "nodeType": "ExpressionStatement", - "src": "31484:43:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "31658:27:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_ownedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "31658:12:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(address => uint256[] storage ref)" - } - }, - "id": 1247, - "indexExpression": { - "argumentTypes": null, - "id": 1246, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1197, - "src": "31671:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31658:18:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31658:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1250, - "nodeType": "ExpressionStatement", - "src": "31658:27:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's ownership-tracking data structures. Note that\nwhile the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for\ngas optimizations e.g. when performing a transfer operation (avoiding double writes).\nThis has O(1) time complexity, but alters the order of the _ownedTokens array.\n@param from address representing the previous owner of the given token ID\n@param tokenId uint256 ID of the token to be removed from the tokens list of the given address", - "id": 1252, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromOwnerEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1197, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30815:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1196, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30815:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1199, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "30829:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30829:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30814:31:1" - }, - "returnParameters": { - "id": 1201, - "nodeType": "ParameterList", - "parameters": [], - "src": "30854:0:1" - }, - "scope": 1302, - "src": "30773:1128:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 1300, - "nodeType": "Block", - "src": "32260:993:1", - "statements": [ - { - "assignments": [ - 1258 - ], - "declarations": [ - { - "constant": false, - "id": 1258, - "name": "lastTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32438:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32438:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1264, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32485:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1259, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32463:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32463:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 190, - "src": "32463:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32463:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32438:49:1" - }, - { - "assignments": [ - 1266 - ], - "declarations": [ - { - "constant": false, - "id": 1266, - "name": "tokenIndex", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32497:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1265, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32497:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1270, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1267, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "32518:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1269, - "indexExpression": { - "argumentTypes": null, - "id": 1268, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "32534:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32518:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32497:45:1" - }, - { - "assignments": [ - 1272 - ], - "declarations": [ - { - "constant": false, - "id": 1272, - "name": "lastTokenId", - "nodeType": "VariableDeclaration", - "scope": 1300, - "src": "32864:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1273, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32886:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1275, - "indexExpression": { - "argumentTypes": null, - "id": 1274, - "name": "lastTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "32897:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32886:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32864:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "32923:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1279, - "indexExpression": { - "argumentTypes": null, - "id": 1278, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "32934:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32923:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1280, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "32948:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32923:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "32923:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1283, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33027:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1285, - "indexExpression": { - "argumentTypes": null, - "id": 1284, - "name": "lastTokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1272, - "src": "33043:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33027:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1286, - "name": "tokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "33058:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33027:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "33027:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "33189:19:1", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "_allTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 988, - "src": "33189:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33189:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1293, - "nodeType": "ExpressionStatement", - "src": "33189:19:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1294, - "name": "_allTokensIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "33218:15:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 1296, - "indexExpression": { - "argumentTypes": null, - "id": 1295, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "33234:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "33218:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33245:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33218:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1299, - "nodeType": "ExpressionStatement", - "src": "33218:28:1" - } - ] - }, - "documentation": "@dev Private function to remove a token from this extension's token tracking data structures.\nThis has O(1) time complexity, but alters the order of the _allTokens array.\n@param tokenId uint256 ID of the token to be removed from the tokens list", - "id": 1301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_removeTokenFromAllTokensEnumeration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1254, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1301, - "src": "32235:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32235:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32234:17:1" - }, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "32260:0:1" - }, - "scope": 1302, - "src": "32189:1064:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 1469, - "src": "24794:8461:1" - }, - { - "id": 1303, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33324:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1304, - "name": "IERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 124, - "src": "33512:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$124", - "typeString": "contract IERC721" - } - }, - "id": 1305, - "nodeType": "InheritanceSpecifier", - "src": "33512:7:1" - } - ], - "contractDependencies": [ - 23, - 124 - ], - "contractKind": "contract", - "documentation": "@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n@dev See https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": false, - "id": 1323, - "linearizedBaseContracts": [ - 1323, - 124, - 23 - ], - "name": "IERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1306, - "nodeType": "ParameterList", - "parameters": [], - "src": "33539:2:1" - }, - "returnParameters": { - "id": 1309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1308, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1310, - "src": "33565:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1307, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33565:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33564:15:1" - }, - "scope": 1323, - "src": "33526:54:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1315, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1311, - "nodeType": "ParameterList", - "parameters": [], - "src": "33600:2:1" - }, - "returnParameters": { - "id": 1314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1313, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1315, - "src": "33626:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1312, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33626:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33625:15:1" - }, - "scope": 1323, - "src": "33585:56:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1322, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1317, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33664:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1316, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33664:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33663:17:1" - }, - "returnParameters": { - "id": 1321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1320, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1322, - "src": "33704:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1319, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33704:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33703:15:1" - }, - "scope": 1323, - "src": "33646:73:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1469, - "src": "33484:237:1" - }, - { - "id": 1324, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33789:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1325, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 386, - "src": "33844:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$386", - "typeString": "contract ERC165" - } - }, - "id": 1326, - "nodeType": "InheritanceSpecifier", - "src": "33844:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1327, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "33852:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1328, - "nodeType": "InheritanceSpecifier", - "src": "33852:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1329, - "name": "IERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1323, - "src": "33860:15:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721Metadata_$1323", - "typeString": "contract IERC721Metadata" - } - }, - "id": 1330, - "nodeType": "InheritanceSpecifier", - "src": "33860:15:1" - } - ], - "contractDependencies": [ - 944, - 23, - 124, - 386, - 1323 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1448, - "linearizedBaseContracts": [ - 1448, - 1323, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Metadata", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1332, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33900:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1331, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33900:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1334, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "33947:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1333, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "33947:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 1338, - "name": "_tokenURIs", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34015:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "typeName": { - "id": 1337, - "keyType": { - "id": 1335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34023:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "34015:26:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueType": { - "id": 1336, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34034:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": true, - "id": 1341, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "VariableDeclaration", - "scope": 1448, - "src": "34326:66:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1339, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "34326:6:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783562356531333966", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34382:10:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1532892063_by_1", - "typeString": "int_const 1532892063" - }, - "value": "0x5b5e139f" - }, - "visibility": "private" - }, - { - "body": { - "id": 1360, - "nodeType": "Block", - "src": "34510:192:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1348, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34520:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1349, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "34528:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34520:12:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1351, - "nodeType": "ExpressionStatement", - "src": "34520:12:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1352, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "34542:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1353, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1345, - "src": "34552:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "34542:16:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "34542:16:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1357, - "name": "_INTERFACE_ID_ERC721_METADATA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1341, - "src": "34665:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 1356, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 385, - "src": "34646:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34646:49:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1359, - "nodeType": "ExpressionStatement", - "src": "34646:49:1" - } - ] - }, - "documentation": "@dev Constructor function", - "id": 1361, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1343, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34461:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1342, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34461:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1345, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1361, - "src": "34481:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1344, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34481:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34460:42:1" - }, - "returnParameters": { - "id": 1347, - "nodeType": "ParameterList", - "parameters": [], - "src": "34510:0:1" - }, - "scope": 1448, - "src": "34448:254:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1368, - "nodeType": "Block", - "src": "34861:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1366, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "34878:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1365, - "id": 1367, - "nodeType": "Return", - "src": "34871:12:1" - } - ] - }, - "documentation": "@dev Gets the token name.\n@return string representing the token name", - "id": 1369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1362, - "nodeType": "ParameterList", - "parameters": [], - "src": "34820:2:1" - }, - "returnParameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1369, - "src": "34846:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34846:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34845:15:1" - }, - "scope": 1448, - "src": "34807:83:1", - "stateMutability": "view", - "superFunction": 1310, - "visibility": "external" - }, - { - "body": { - "id": 1376, - "nodeType": "Block", - "src": "35055:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1374, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "35072:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1373, - "id": 1375, - "nodeType": "Return", - "src": "35065:14:1" - } - ] - }, - "documentation": "@dev Gets the token symbol.\n@return string representing the token symbol", - "id": 1377, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [], - "src": "35014:2:1" - }, - "returnParameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1377, - "src": "35040:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35040:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35039:15:1" - }, - "scope": 1448, - "src": "34999:87:1", - "stateMutability": "view", - "superFunction": 1315, - "visibility": "external" - }, - { - "body": { - "id": 1395, - "nodeType": "Block", - "src": "35359:129:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1386, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35385:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1385, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35377:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35395:49:1", - "subdenomination": null, - "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": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35369:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35369:76:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "35369:76:1" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1391, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35462:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1393, - "indexExpression": { - "argumentTypes": null, - "id": 1392, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "35473:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35462:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 1383, - "id": 1394, - "nodeType": "Return", - "src": "35455:26:1" - } - ] - }, - "documentation": "@dev Returns an URI for a given token ID.\nThrows if the token ID does not exist. May return an empty string.\n@param tokenId uint256 ID of the token to query", - "id": 1396, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1379, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35304:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1378, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35304:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35303:17:1" - }, - "returnParameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1396, - "src": "35344:13:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1381, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35344:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35343:15:1" - }, - "scope": 1448, - "src": "35286:202:1", - "stateMutability": "view", - "superFunction": 1322, - "visibility": "external" - }, - { - "body": { - "id": 1416, - "nodeType": "Block", - "src": "35794:125:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1405, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35820:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1404, - "name": "_exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "35812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35812:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35830:46:1", - "subdenomination": null, - "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": 1403, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1543, - 1544 - ], - "referencedDeclaration": 1544, - "src": "35804:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "35804:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1409, - "nodeType": "ExpressionStatement", - "src": "35804:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1410, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "35887:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1412, - "indexExpression": { - "argumentTypes": null, - "id": 1411, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "35898:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35887:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1413, - "name": "uri", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "35909:3:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "35887:25:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1415, - "nodeType": "ExpressionStatement", - "src": "35887:25:1" - } - ] - }, - "documentation": "@dev Internal function to set the token URI for a given token.\nReverts if the token ID does not exist.\n@param tokenId uint256 ID of the token to set its URI\n@param uri string URI to assign", - "id": 1417, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setTokenURI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35749:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35749:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1400, - "name": "uri", - "nodeType": "VariableDeclaration", - "scope": 1417, - "src": "35766:17:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1399, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35766:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35748:36:1" - }, - "returnParameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "35794:0:1" - }, - "scope": 1448, - "src": "35727:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1446, - "nodeType": "Block", - "src": "36268:184:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1427, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1419, - "src": "36290:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36297:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1424, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1576, - "src": "36278:5:1", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721Metadata_$1448", - "typeString": "contract super ERC721Metadata" - } - }, - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 811, - "src": "36278:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36278:27:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "36278:27:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36361:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1434, - "indexExpression": { - "argumentTypes": null, - "id": 1433, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36372:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36361:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - ], - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36355:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "36355:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes storage pointer" - } - }, - "id": 1436, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "36355:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36392:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "36355:38:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1445, - "nodeType": "IfStatement", - "src": "36351:95:1", - "trueBody": { - "id": 1444, - "nodeType": "Block", - "src": "36395:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "36409:26:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "_tokenURIs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "36416:10:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "36427:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "36416:19:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "36409:26:1" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to burn a specific token.\nReverts if the token does not exist.\nDeprecated, use _burn(uint256) instead.\n@param owner owner of the token to burn\n@param tokenId uint256 ID of the token being burned by the msg.sender", - "id": 1447, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1419, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36227:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36227:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1421, - "name": "tokenId", - "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "36242:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36242:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36226:32:1" - }, - "returnParameters": { - "id": 1423, - "nodeType": "ParameterList", - "parameters": [], - "src": "36268:0:1" - }, - "scope": 1448, - "src": "36212:240:1", - "stateMutability": "nonpayable", - "superFunction": 811, - "visibility": "internal" - } - ], - "scope": 1469, - "src": "33817:2637:1" - }, - { - "id": 1449, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "36518:23:1" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1450, - "name": "ERC721", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 944, - "src": "36838:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721_$944", - "typeString": "contract ERC721" - } - }, - "id": 1451, - "nodeType": "InheritanceSpecifier", - "src": "36838:6:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1452, - "name": "ERC721Enumerable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1302, - "src": "36846:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Enumerable_$1302", - "typeString": "contract ERC721Enumerable" - } - }, - "id": 1453, - "nodeType": "InheritanceSpecifier", - "src": "36846:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1454, - "name": "ERC721Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1448, - "src": "36864:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Metadata_$1448", - "typeString": "contract ERC721Metadata" - } - }, - "id": 1455, - "nodeType": "InheritanceSpecifier", - "src": "36864:14:1" - } - ], - "contractDependencies": [ - 944, - 969, - 23, - 124, - 386, - 1302, - 1323, - 1448 - ], - "contractKind": "contract", - "documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://eips.ethereum.org/EIPS/eip-721", - "fullyImplemented": true, - "id": 1468, - "linearizedBaseContracts": [ - 1468, - 1448, - 1323, - 1302, - 969, - 944, - 124, - 386, - 23 - ], - "name": "ERC721Full", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1466, - "nodeType": "Block", - "src": "36976:64:1", - "statements": [] - }, - "documentation": null, - "id": 1467, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1462, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "36962:4:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1463, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "36968:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1461, - "name": "ERC721Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "36947:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Metadata_$1448_$", - "typeString": "type(contract ERC721Metadata)" - } - }, - "nodeType": "ModifierInvocation", - "src": "36947:28:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1457, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36898:18:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1456, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36898:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 1467, - "src": "36918:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1458, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "36918:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "36897:42:1" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "36976:0:1" - }, - "scope": 1468, - "src": "36885:155:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1469, - "src": "36815:227:1" - } - ], - "src": "61:36982:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.0+commit.1d4f565a.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-09-05T15:01:09.135Z", - "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.", - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Color.sol b/src/contracts/Color.sol index 1d6959c..9e60ffb 100644 --- a/src/contracts/Color.sol +++ b/src/contracts/Color.sol @@ -1,4 +1,4 @@ -pragma solidity 0.5.0; +pragma solidity ^0.5.0; import "./ERC721Full.sol"; @@ -16,5 +16,4 @@ contract Color is ERC721Full { _mint(msg.sender, _id); _colorExists[_color] = true; } - } diff --git a/src/contracts/ERC721Full.sol b/src/contracts/ERC721Full.sol index 5ec9734..fd921a6 100644 --- a/src/contracts/ERC721Full.sol +++ b/src/contracts/ERC721Full.sol @@ -1,5 +1,5 @@ -// File: @openzeppelin/contracts/introspection/IERC165.sol +// File: node_modules\@openzeppelin\contracts\introspection\IERC165.sol pragma solidity ^0.5.0; @@ -24,7 +24,7 @@ interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } -// File: @openzeppelin/contracts/token/ERC721/IERC721.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\IERC721.sol pragma solidity ^0.5.0; @@ -79,7 +79,7 @@ contract IERC721 is IERC165 { function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public; } -// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\IERC721Receiver.sol pragma solidity ^0.5.0; @@ -107,7 +107,7 @@ contract IERC721Receiver { public returns (bytes4); } -// File: @openzeppelin/contracts/math/SafeMath.sol +// File: node_modules\@openzeppelin\contracts\math\SafeMath.sol pragma solidity ^0.5.0; @@ -217,7 +217,7 @@ library SafeMath { } } -// File: @openzeppelin/contracts/utils/Address.sol +// File: node_modules\@openzeppelin\contracts\utils\Address.sol pragma solidity ^0.5.0; @@ -247,7 +247,7 @@ library Address { } } -// File: @openzeppelin/contracts/drafts/Counters.sol +// File: node_modules\@openzeppelin\contracts\drafts\Counters.sol pragma solidity ^0.5.0; @@ -286,7 +286,7 @@ library Counters { } } -// File: @openzeppelin/contracts/introspection/ERC165.sol +// File: node_modules\@openzeppelin\contracts\introspection\ERC165.sol pragma solidity ^0.5.0; @@ -340,7 +340,7 @@ contract ERC165 is IERC165 { } } -// File: @openzeppelin/contracts/token/ERC721/ERC721.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\ERC721.sol pragma solidity ^0.5.0; @@ -641,7 +641,7 @@ contract ERC721 is ERC165, IERC721 { } } -// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\IERC721Enumerable.sol pragma solidity ^0.5.0; @@ -657,7 +657,7 @@ contract IERC721Enumerable is IERC721 { function tokenByIndex(uint256 index) public view returns (uint256); } -// File: @openzeppelin/contracts/token/ERC721/ERC721Enumerable.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\ERC721Enumerable.sol pragma solidity ^0.5.0; @@ -858,7 +858,7 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable { } } -// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\IERC721Metadata.sol pragma solidity ^0.5.0; @@ -873,7 +873,7 @@ contract IERC721Metadata is IERC721 { function tokenURI(uint256 tokenId) external view returns (string memory); } -// File: @openzeppelin/contracts/token/ERC721/ERC721Metadata.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\ERC721Metadata.sol pragma solidity ^0.5.0; @@ -964,7 +964,7 @@ contract ERC721Metadata is ERC165, ERC721, IERC721Metadata { } } -// File: @openzeppelin/contracts/token/ERC721/ERC721Full.sol +// File: node_modules\@openzeppelin\contracts\token\ERC721\ERC721Full.sol pragma solidity ^0.5.0; From 7174f56f9cf6cd84de24bf5acfab76c6467bec51 Mon Sep 17 00:00:00 2001 From: anton-karlovskiy-g Date: Wed, 10 Feb 2021 21:49:37 +0300 Subject: [PATCH 2/6] [chore] clean up --- .vscode/settings.json | 4 +- src/components/App.js | 118 +++++++++++++++++++++------------------- src/contracts/Color.sol | 5 +- src/index.js | 2 + test/Color.test.js | 88 +++++++++++++++--------------- 5 files changed, 111 insertions(+), 106 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index dc94151..3026c05 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,8 @@ { "cSpell.words": [ "bignumber", - "browserslist" + "browserslist", + "noopener", + "noreferrer" ] } \ No newline at end of file diff --git a/src/components/App.js b/src/components/App.js index 02383db..6419e5d 100755 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,72 +1,71 @@ + import React, { Component } from 'react'; -import Web3 from 'web3' +import Web3 from 'web3'; + +import Color from '../abis/Color.json'; import './App.css'; -import Color from '../abis/Color.json' class App extends Component { + constructor(props) { + super(props); + this.state = { + account: '', + contract: null, + totalSupply: 0, + colors: [] + }; + } async componentWillMount() { - await this.loadWeb3() - await this.loadBlockchainData() + await this.loadWeb3(); + await this.loadBlockchainData(); } async loadWeb3() { if (window.ethereum) { - window.web3 = new Web3(window.ethereum) - await window.ethereum.enable() - } - else if (window.web3) { - window.web3 = new Web3(window.web3.currentProvider) - } - else { - window.alert('Non-Ethereum browser detected. You should consider trying MetaMask!') + window.web3 = new Web3(window.ethereum); + await window.ethereum.enable(); + } else if (window.web3) { + window.web3 = new Web3(window.web3.currentProvider); + } else { + window.alert('Non-Ethereum browser detected. You should consider trying MetaMask!'); } } async loadBlockchainData() { - const web3 = window.web3 + const web3 = window.web3; // Load account - const accounts = await web3.eth.getAccounts() - this.setState({ account: accounts[0] }) + const accounts = await web3.eth.getAccounts(); + this.setState({ account: accounts[0] }); - const networkId = await web3.eth.net.getId() - const networkData = Color.networks[networkId] + const networkId = await web3.eth.net.getId(); + const networkData = Color.networks[networkId]; if(networkData) { - const abi = Color.abi - const address = networkData.address - const contract = new web3.eth.Contract(abi, address) - this.setState({ contract }) - const totalSupply = await contract.methods.totalSupply().call() - this.setState({ totalSupply }) + const abi = Color.abi; + const address = networkData.address; + const contract = new web3.eth.Contract(abi, address); + this.setState({ contract }); + const totalSupply = await contract.methods.totalSupply().call(); + this.setState({ totalSupply }); // Load Colors - for (var i = 1; i <= totalSupply; i++) { - const color = await contract.methods.colors(i - 1).call() + for (let index = 0; index < totalSupply; index++) { + const color = await contract.methods.colors(index).call(); this.setState({ colors: [...this.state.colors, color] - }) + }); } } else { - window.alert('Smart contract not deployed to detected network.') + window.alert('Smart contract not deployed to detected network.'); } } - mint = (color) => { + mint = color => { this.state.contract.methods.mint(color).send({ from: this.state.account }) - .once('receipt', (receipt) => { + .once('receipt', receipt => { this.setState({ colors: [...this.state.colors, color] - }) - }) - } - - constructor(props) { - super(props) - this.state = { - account: '', - contract: null, - totalSupply: 0, - colors: [] - } + }); + }); } render() { @@ -77,13 +76,16 @@ class App extends Component { className="navbar-brand col-sm-3 col-md-2 mr-0" href="http://www.dappuniversity.com/bootcamp" target="_blank" - rel="noopener noreferrer" - > + rel="noopener noreferrer"> Color Tokens @@ -92,35 +94,37 @@ class App extends Component {

Issue Token

-
{ - event.preventDefault() - const color = this.color.value - this.mint(color) - }}> + { + event.preventDefault() + const color = this.color.value + this.mint(color) + }}> { this.color = input }} - /> + ref={(input) => { this.color = input }} /> + value='MINT' />

- { this.state.colors.map((color, key) => { - return( + {this.state.colors.map((color, key) => { + return (
-
+
+
{color}
- ) + ); })}
diff --git a/src/contracts/Color.sol b/src/contracts/Color.sol index 9e60ffb..4be603f 100644 --- a/src/contracts/Color.sol +++ b/src/contracts/Color.sol @@ -6,10 +6,9 @@ contract Color is ERC721Full { string[] public colors; mapping(string => bool) _colorExists; - constructor() ERC721Full("Color", "COLOR") public { - } + constructor() ERC721Full("Color", "COLOR") public {} - // E.G. color = "#FFFFFF" + // e.g. color = "#FFFFFF" function mint(string memory _color) public { require(!_colorExists[_color]); uint _id = colors.push(_color); diff --git a/src/index.js b/src/index.js index d7d1759..f1a93d4 100755 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,8 @@ + import React from 'react'; import ReactDOM from 'react-dom'; import 'bootstrap/dist/css/bootstrap.css' + import App from './components/App'; import * as serviceWorker from './serviceWorker'; diff --git a/test/Color.test.js b/test/Color.test.js index fc97452..4176534 100644 --- a/test/Color.test.js +++ b/test/Color.test.js @@ -1,73 +1,71 @@ -const Color = artifacts.require('./Color.sol') + +const Color = artifacts.require('./Color.sol'); require('chai') .use(require('chai-as-promised')) - .should() + .should(); contract('Color', (accounts) => { - let contract + let contract; before(async () => { - contract = await Color.deployed() - }) + contract = await Color.deployed(); + }); describe('deployment', async () => { it('deploys successfully', async () => { - const address = contract.address - assert.notEqual(address, 0x0) - assert.notEqual(address, '') - assert.notEqual(address, null) - assert.notEqual(address, undefined) - }) + const address = contract.address; + assert.notEqual(address, 0x0); + assert.notEqual(address, ''); + assert.notEqual(address, null); + assert.notEqual(address, undefined); + }); it('has a name', async () => { - const name = await contract.name() - assert.equal(name, 'Color') - }) + const name = await contract.name(); + assert.equal(name, 'Color'); + }); it('has a symbol', async () => { - const symbol = await contract.symbol() - assert.equal(symbol, 'COLOR') - }) - - }) + const symbol = await contract.symbol(); + assert.equal(symbol, 'COLOR'); + }); + }); describe('minting', async () => { - it('creates a new token', async () => { - const result = await contract.mint('#EC058E') - const totalSupply = await contract.totalSupply() + const result = await contract.mint('#EC058E'); + const totalSupply = await contract.totalSupply(); // SUCCESS - assert.equal(totalSupply, 1) - const event = result.logs[0].args - assert.equal(event.tokenId.toNumber(), 1, 'id is correct') - assert.equal(event.from, '0x0000000000000000000000000000000000000000', 'from is correct') - assert.equal(event.to, accounts[0], 'to is correct') + assert.equal(totalSupply, 1); + const event = result.logs[0].args; + assert.equal(event.tokenId.toNumber(), 1, 'id is correct'); + assert.equal(event.from, '0x0000000000000000000000000000000000000000', 'from is correct'); + assert.equal(event.to, accounts[0], 'to is correct'); // FAILURE: cannot mint same color twice await contract.mint('#EC058E').should.be.rejected; - }) - }) + }); + }); describe('indexing', async () => { it('lists colors', async () => { // Mint 3 more tokens - await contract.mint('#5386E4') - await contract.mint('#FFFFFF') - await contract.mint('#000000') - const totalSupply = await contract.totalSupply() - - let color - let result = [] + await contract.mint('#5386E4'); + await contract.mint('#FFFFFF'); + await contract.mint('#000000'); + const totalSupply = await contract.totalSupply(); - for (var i = 1; i <= totalSupply; i++) { - color = await contract.colors(i - 1) - result.push(color) - } + let color; + let result = []; - let expected = ['#EC058E', '#5386E4', '#FFFFFF', '#000000'] - assert.equal(result.join(','), expected.join(',')) - }) - }) + for (let index = 0; index < totalSupply; index++) { + color = await contract.colors(index); + result.push(color); + }; -}) + let expected = ['#EC058E', '#5386E4', '#FFFFFF', '#000000']; + assert.equal(result.join(','), expected.join(',')); + }); + }); +}); From 668fbd6b6e8ac1b2a1bdd47b725cedfb3130368d Mon Sep 17 00:00:00 2001 From: anton-karlovskiy-g Date: Wed, 10 Feb 2021 22:25:10 +0300 Subject: [PATCH 3/6] [refactor] rewrite app.js using react hooks --- .gitignore | 2 +- src/components/App.js | 234 ++++++++++++++++++++++-------------------- truffle-config.js | 5 +- 3 files changed, 127 insertions(+), 114 deletions(-) diff --git a/.gitignore b/.gitignore index 779b2e3..582a9ca 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -/src/abis +/src/built-contracts diff --git a/src/components/App.js b/src/components/App.js index 6419e5d..c323e95 100755 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,27 +1,12 @@ -import React, { Component } from 'react'; +import React from 'react'; import Web3 from 'web3'; -import Color from '../abis/Color.json'; +import Color from '../built-contracts/Color.json'; import './App.css'; -class App extends Component { - constructor(props) { - super(props); - this.state = { - account: '', - contract: null, - totalSupply: 0, - colors: [] - }; - } - - async componentWillMount() { - await this.loadWeb3(); - await this.loadBlockchainData(); - } - - async loadWeb3() { +const loadWeb3 = async () => { + try { if (window.ethereum) { window.web3 = new Web3(window.ethereum); await window.ethereum.enable(); @@ -30,107 +15,134 @@ class App extends Component { } else { window.alert('Non-Ethereum browser detected. You should consider trying MetaMask!'); } + } catch (error) { + console.log('[loadWeb3] error.message => ', error.message); } +}; - async loadBlockchainData() { - const web3 = window.web3; - // Load account - const accounts = await web3.eth.getAccounts(); - this.setState({ account: accounts[0] }); +const App = () => { + const [account, setAccount] = React.useState(''); + const [contract, setContract] = React.useState(null); + const [totalSupply, setTotalSupply] = React.useState(0); + const [colors, setColors] = React.useState([]); + const inputRef = React.useRef(null); - const networkId = await web3.eth.net.getId(); - const networkData = Color.networks[networkId]; - if(networkData) { - const abi = Color.abi; - const address = networkData.address; - const contract = new web3.eth.Contract(abi, address); - this.setState({ contract }); - const totalSupply = await contract.methods.totalSupply().call(); - this.setState({ totalSupply }); - // Load Colors - for (let index = 0; index < totalSupply; index++) { - const color = await contract.methods.colors(index).call(); - this.setState({ - colors: [...this.state.colors, color] - }); + React.useEffect(() => { + (async () => { + await loadWeb3(); + await handleLoadBlockchainData(); + })(); + }, []); + + const handleLoadBlockchainData = async () => { + try { + const web3 = window.web3; + // Load account + const accounts = await web3.eth.getAccounts(); + setAccount(accounts[0]); + + const networkId = await web3.eth.net.getId(); + const networkData = Color.networks[networkId]; + if(networkData) { + const abi = Color.abi; + const address = networkData.address; + const theContract = new web3.eth.Contract(abi, address); + setContract(theContract); + const theTotalSupply = await theContract.methods.totalSupply().call(); + setTotalSupply(theTotalSupply); + // Load Colors + for (let index = 0; index < theTotalSupply; index++) { + const color = await theContract.methods.colors(index).call(); + setColors(prevColors => ([ + ...prevColors, + color + ])); + } + } else { + window.alert('Smart contract not deployed to detected network.'); } - } else { - window.alert('Smart contract not deployed to detected network.'); + } catch (error) { + console.log('[handleLoadBlockchainData] error.message => ', error.message); } - } + }; - mint = color => { - this.state.contract.methods.mint(color).send({ from: this.state.account }) - .once('receipt', receipt => { - this.setState({ - colors: [...this.state.colors, color] - }); - }); - } + const mint = async color => { + try { + await contract.methods.mint(color).send({ from: account }); + setColors(prevColors => ([ + ...prevColors, + color + ])); + } catch (error) { + console.log('[mint] error.message => ', error.message) + } + }; - render() { - return ( -
- -
-
-
-
-

Issue Token

-
{ - event.preventDefault() - const color = this.color.value - this.mint(color) - }}> - { this.color = input }} /> - -
+ const handleSubmit = event => { + event.preventDefault(); + const color = inputRef.current.value; + mint(color); + }; + + return ( +
+ +
+
+
+
+

Issue Token

+
+ + +
+
+
+
+
+
+ {colors.map(color => ( +
+
-
-
-
-
- {this.state.colors.map((color, key) => { - return ( -
-
-
-
{color}
-
- ); - })} -
+
{color}
+
+ ))}
- ); - } -} + + ); +}; export default App; diff --git a/truffle-config.js b/truffle-config.js index 92b5ae5..b1b3443 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -1,3 +1,4 @@ + require('babel-register'); require('babel-polyfill'); @@ -10,7 +11,7 @@ module.exports = { }, }, contracts_directory: './src/contracts/', - contracts_build_directory: './src/abis/', + contracts_build_directory: './src/built-contracts/', compilers: { solc: { optimizer: { @@ -19,4 +20,4 @@ module.exports = { } } } -} +}; From eccfe25c15bb1ca452372261df028250040055d0 Mon Sep 17 00:00:00 2001 From: anton-karlovskiy-g Date: Wed, 10 Feb 2021 22:30:57 +0300 Subject: [PATCH 4/6] [chore] clean up --- test/Color.test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/Color.test.js b/test/Color.test.js index 4176534..ec9f77a 100644 --- a/test/Color.test.js +++ b/test/Color.test.js @@ -36,14 +36,15 @@ contract('Color', (accounts) => { it('creates a new token', async () => { const result = await contract.mint('#EC058E'); const totalSupply = await contract.totalSupply(); - // SUCCESS + + // Success assert.equal(totalSupply, 1); const event = result.logs[0].args; assert.equal(event.tokenId.toNumber(), 1, 'id is correct'); assert.equal(event.from, '0x0000000000000000000000000000000000000000', 'from is correct'); assert.equal(event.to, accounts[0], 'to is correct'); - // FAILURE: cannot mint same color twice + // Failure: cannot mint same color twice await contract.mint('#EC058E').should.be.rejected; }); }); @@ -56,11 +57,10 @@ contract('Color', (accounts) => { await contract.mint('#000000'); const totalSupply = await contract.totalSupply(); - let color; let result = []; for (let index = 0; index < totalSupply; index++) { - color = await contract.colors(index); + const color = await contract.colors(index); result.push(color); }; From 82831c04b9b2ad63652613d55c82789bff7a0aa9 Mon Sep 17 00:00:00 2001 From: anton-karlovskiy-g Date: Wed, 10 Feb 2021 22:33:51 +0300 Subject: [PATCH 5/6] [chore] add contributors --- package.json | 4 ++++ src/{ => assets}/logo.png | Bin 2 files changed, 4 insertions(+) rename src/{ => assets}/logo.png (100%) diff --git a/package.json b/package.json index 09d2835..ab8edc6 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,10 @@ "version": "0.1.0", "description": "An Ethereum Marketplace", "author": "gregory@dappuniversity.com", + "contributors": [ + "gregory@dappuniversity.com", + "Anton K. " + ], "dependencies": { "@openzeppelin/contracts": "^2.3.0", "babel-polyfill": "6.26.0", diff --git a/src/logo.png b/src/assets/logo.png similarity index 100% rename from src/logo.png rename to src/assets/logo.png From 0f0eadb6a77a2a7b53d80440e0bd212d896e52f4 Mon Sep 17 00:00:00 2001 From: anton-karlovskiy Date: Sun, 7 Mar 2021 21:27:08 +0300 Subject: [PATCH 6/6] fix: avoid redeclaring color variable in the loop --- README.md | 36 ++++++++++++++++++++++++++++++++++++ test/Color.test.js | 3 ++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..cfd3f40 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# nft +Crypto Collectible NFT Tutorial with ERC-721 Tokens + +## Dependencies
+Install these prerequisites to continue + +NPM: https://nodejs.org
+Truffle: https://github.com/trufflesuite/truffle
+Ganache: http://truffleframework.com/ganache/
+Metamask: https://metamask.io/
+
+## Step 1. Clone the project +```bash +https://github.com/dappuniversity/nft.git +``` + +## Step 2. Install dependencies +```bash +cd nft +npm install +``` +## Step 3. Start Ganache +Open the Ganache GUI client that you downloaded and installed. This will start your local blockchain instance. + +## Step 4. Compile & Deploy Election Smart Contract +```truffle migrate --reset``` You need to migrate contract in order to deploy in your local system +## Step 5. Configure Metamask +-Unlock Metamask
+-Connect metamask to your local Ethereum blockchain provided by Ganache.
+-Import an account provided by ganache.
+## Step 6. Run the Front End Application +``` +cd src +npm start +``` +Now you Blockchain web-app is served on http://localhost:8000 \ No newline at end of file diff --git a/test/Color.test.js b/test/Color.test.js index ec9f77a..5d2b5cf 100644 --- a/test/Color.test.js +++ b/test/Color.test.js @@ -59,8 +59,9 @@ contract('Color', (accounts) => { let result = []; + let color; for (let index = 0; index < totalSupply; index++) { - const color = await contract.colors(index); + color = await contract.colors(index); result.push(color); };